[Perl] Geen goede return type

Pagina: 1
Acties:

  • active2
  • Registratie: Juni 2001
  • Laatst online: 17-07 21:56

active2

Google is your friend

Topicstarter
Ik ben voor het eerst bezig met perl scripten (ja dat moest er altijd nog een keer van komen) maar nu heb ik een doel voor ogen :)

Ik heb een mailserver draaien met uiteraard enige beveiliging ingebouwd en deze beveiliging gaat via Kerberos V (MIT implementatie). Nou is het zo dat ik bezig ben met server side filtering van mijn mail. Alleen om te kunnen inloggen heb ik squirrelmail nodig. Squirrelmail maakt goed connectie met de imap server en inloggen en alles gaat ook goed.

Maar als ik nu serverside scripting ga doen dan heeft hij een ticket nodig van mijn Kerberos server. En dat ticket probeer ik aan te vragen met perl.

Er is een CPAN module voor en ik heb al de nodige documentatie opgezocht.

Dit is het beetje code dat ik al gemaakt heb:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl -w
#
# Proberen van het krijgen van kerberos credentials
#
                                                                                
# Gebruik Krb5
use Authen::Krb5;
                                                                                
#Authen::Krb5::init_context();
Authen::Krb5::init_ets();
                                                                                
#$ac = new Authen::Krb5::AuthContext;
                                                                                
$cc = Authen::Krb5::cc_default();
                                                                                
$client = Authen::Krb5::parse_name('USER');
$server = Authen::Krb5::parse_name('krbtgt/ACTIVE2.HOMELINUX.ORG');

Authen::Krb5::get_in_tkt_with_password($client, $server, 'secret_password', $cc) or die Authen::Krb5::error();


Nou is het zo dat Auth::Krb5::parse_name('USER'); een Authen::Krb5::Principal moet teruggeven zie hier:
parse_name(name)
--
Converts a string representation of a principal to a principal object. You can use this to create a principal from your username.
En volgens de documentatie moet de functie Authen::Krb5::get_in_tkt_with_password 3 objecten en een password mee krijgen. De eerste 2 parameters zijn Authen::Krb5::Principal objecten en password lijkt me duidelijk en als laatste een Authen::Krb5::Ccache
get_in_tkt_with_password(client,server,password,cc)
--
Attempt to get an initial ticket for the client. 'client' is a principal object for which you want an initial ticket. 'server' is a principal object for the service (usually krbtgt/REALM@REALM). 'password' is the password for the client, and 'cc' is a Authen::Krb5::Ccache object representing the current credentials cache. Returns a Kerberos error code.
Dit is de foutmelding:
server:~/perl_bins# ./test.pl
client is not of type Authen::Krb5::Principal at ./test.pl line 19.
server:~/perl_bins#
Nu heb ik het idee dat ik wat fout doe maar ik kan niet achterhalen wat.

Google, Het mirakel van de 21e eeuw!!!!


  • active2
  • Registratie: Juni 2001
  • Laatst online: 17-07 21:56

active2

Google is your friend

Topicstarter
Ik weet nu wat ik fout gedaan heb. Voor die variables moest ook nog 'my'.

Alleen nu ik dat gedaan heb kom ik tot het volgende:
server:~/perl_bins# ./test.pl
Bad magic number for krb5_context structure while parsing client principal
server:~/perl_bins#

Google, Het mirakel van de 21e eeuw!!!!