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);
}
}