Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Kernel::System::CustomerAuth::SimpleSso;
- use strict;
- use warnings;
- our @ObjectDependencies = (
- 'Kernel::Config',
- 'Kernel::System::Log',
- );
- sub new {
- my ( $Type, %Param ) = @_;
- # allocate new hash for object
- my $Self = {};
- bless( $Self, $Type );
- # Debug 0=off 1=on
- $Self->{Debug} = 0;
- $Self->{Count} = $Param{Count} || '';
- return $Self;
- }
- sub GetOption {
- my ( $Self, %Param ) = @_;
- # check needed stuff
- if ( !$Param{What} ) {
- $Kernel::OM->Get('Kernel::System::Log')->Log(
- Priority => 'error',
- Message => "Need What!"
- );
- return;
- }
- # module options
- my %Option = (
- PreAuth => 1,
- );
- # return option
- return $Option{ $Param{What} };
- }
- sub Auth {
- my ( $Self, %Param ) = @_;
- my $ParamObject = $Kernel::OM->Get('Kernel::System::Web::Request');
- my $Token = $ParamObject->GetParam( Param => 'RequestedURL' );
- use Data::Dumper;
- $Kernel::OM->Get('Kernel::System::Log')->Log(
- Priority => 'error',
- Message => 'ENTROU AQUI SimpleSso '.$Token
- );
- # get params
- my $User = $ENV{REMOTE_USER} || $ENV{HTTP_REMOTE_USER};
- my $RemoteAddr = $ENV{REMOTE_ADDR} || 'Got no REMOTE_ADDR env!';
- # return on on user
- if ( !$User ) {
- $Kernel::OM->Get('Kernel::System::Log')->Log(
- Priority => 'notice',
- Message =>
- "User: No \$ENV{REMOTE_USER} or \$ENV{HTTP_REMOTE_USER} !(REMOTE_ADDR: $RemoteAddr).",
- );
- return;
- }
- # get config object
- my $ConfigObject = $Kernel::OM->Get('Kernel::Config');
- # replace parts of login
- my $Replace = $ConfigObject->Get(
- 'Customer::AuthModule::HTTPBasicAuth::Replace' . $Self->{Count},
- );
- if ($Replace) {
- $User =~ s/^\Q$Replace\E//;
- }
- # regexp on login
- my $ReplaceRegExp = $ConfigObject->Get(
- 'Customer::AuthModule::HTTPBasicAuth::ReplaceRegExp' . $Self->{Count},
- );
- if ($ReplaceRegExp) {
- $User =~ s/$ReplaceRegExp/$1/;
- }
- # log
- $Kernel::OM->Get('Kernel::System::Log')->Log(
- Priority => 'notice',
- Message => "User: $User Authentication ok (REMOTE_ADDR: $RemoteAddr).",
- );
- return $User;
- }
- 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement