0

SSO(Oracle Access manager(OAM))を使用したCOGNOSカスタム認証プロバイダー(Java)の実装に取り​​組んでいます。

OAMが機能する方法は、すべてのHTTP / HTTPS要求で有効なセッショントークンCookieを検索し、見つからない場合はOAMログインページにリダイレクトすることです。

Cookieが有効/承認されている場合は、HTTP HEADERを追加し、その中にユーザー名を設定して、CognosURLにリダイレクトします。Cognosは、この呼び出しをカスタム認証プロバイダーに送信します。

今私の問題は、カスタム認証プロバイダー内でこのヘッダー値を読み取ることができないことです。ASPページを追加しようとしましたが、値を読み取ることができます。これは、値が渡されていることを証明し、CAPJavaコードでこれを行う方法に問題があります。

使用しようとしているコードからのスニペット。

注:Cookieは正常に取得できますが、すべてのヘッダーは常にNULLです。注2:INamespaceAuthenticationProvider/IBiBusHeaderとINamespaceAuthenticationProvider2/IBiBusHeader2の両方を使用してみました

public class CAPClass extends Namespace
    implements INamespaceAuthenticationProvider
{
    private String GetSingleValue(String[] value)
    {
        if(value != null && value.length > 0)
            return value[0];
        else
            return null;
    }

    public void createLogs(String var, IBiBusHeader theAuthRequest)
    {
        CreateLog.LogMsg(var + ": " + GetSingleValue(theAuthRequest.getEnvVarValue(var)));
        CreateLog.LogMsg(var + ": " + GetSingleValue(theAuthRequest.getTrustedEnvVarValue(var)));
        CreateLog.LogMsg(var + ": " + GetSingleValue(theAuthRequest.getCredentialValue(var)));
        //CreateLog.LogMsg(var + ": " + GetSingleValue(theAuthRequest.getTrustedCredentialValue(var))); 
    }

    public IVisa logon(IBiBusHeader theAuthRequest)
            throws UserRecoverableException, SystemRecoverableException,
            UnrecoverableException
    {
        String var = "ObSSOCookie";
        String SessTok = GetSingleValue(theAuthRequest.getCookieValue(var));
        CreateLog.LogMsg(var + ": " + SessTok);

        var = "REMOTE_USER";
        createLogs(var, theAuthRequest);
        var = "HTTP_REMOTE_USER";
        createLogs(var, theAuthRequest);
        var = "HEADER_REMOTE_USER";
        createLogs(var, theAuthRequest);
        var = "HEADER_HTTP_REMOTE_USER";
        createLogs(var, theAuthRequest);
        var = "HTTP_HEADER_REMOTE_USER";
        createLogs(var, theAuthRequest); 
        var = "SSO_LOGIN_ID";
        createLogs(var, theAuthRequest); 
        var = "HTTP_SSO_LOGIN_ID";
        createLogs(var, theAuthRequest); 
        var = "HEADER_SSO_LOGIN_ID";
        createLogs(var, theAuthRequest); 
        var = "HEADER_HTTP_SSO_LOGIN_ID";
        createLogs(var, theAuthRequest); 
        var = "HTTP_HEADER_SSO_LOGIN_ID";
        createLogs(var, theAuthRequest); 
        var = "OAM_REMOTE_USER";
        createLogs(var, theAuthRequest); 
        var = "HTTP_OAM_REMOTE_USER";
        createLogs(var, theAuthRequest);
        var = "HEADER_OAM_REMOTE_USER";
        createLogs(var, theAuthRequest);
        var = "HEADER_HTTP_OAM_REMOTE_USER";
        createLogs(var, theAuthRequest);
        var = "HTTP_HEADER_OAM_REMOTE_USER";
        createLogs(var, theAuthRequest);
    }
}
4

1 に答える 1

0

SystemRecoverableExceptionSDK を使用する-SystemRecoverableExceptionを使用して信頼できる変数を取得する方法

于 2012-10-04T21:38:01.490 に答える