2017-12-08 20 views
0

現在、IBM Websphere Application ServerにデプロイされているWebアプリケーションをテスト中です。コンソール設定でLTPATokenタイムアウトを設定できることを理解しています。しかし、ltpatokenが期限切れになったことを示すために、JAVAのタイムアウト期間またはリスナーを取得する方法はありますか?ltpatoken2有効期限を取得する

+0

一般的な期間または個々のltaトークンについては?一般的な設定はwsadmin(スクリプトまたはjavaコード)によって取得可能でなければなりませんが、その値がどのように取得されるかはわかりません。個々のトークンについては、ltpaトークンクッキーから有効期限を取得できますか? – DanielBarbarian

+0

こんにちは、私は実際に両方を見ています。私はltpatoken cookieの利用可能なメソッドを調べましたが、タイムアウト期間ではないと思う最大の年齢のみを取得できます。 – Sebastian

+0

しかし、すべてのクッキーに有効期限が設定されている必要があります。または、有効期限が別のものに設定されている可能性があります。 – DanielBarbarian

答えて

0

あなたはこのようなJavaコードでのトークンの有効期限を取得することができます(これはあなたの資格の有効期限を与える)

Subject callerSubject = WSSubject.getCallerSubject(); 
    Set<WSCredential> credentials = callerSubject.getPublicCredentials(WSCredential.class); 

    // should contain only one credential 
    int credSize = credentials.size(); 
    if(credSize != 1) 
     throw new RuntimeException("Invalid credential number: "+credSize); 
    WSCredential cred = credentials.iterator().next(); 
    System.out.println("getExpiration: " + cred.getExpiration()+" date: " + new Date(cred.getExpiration()) + "<BR>"); 

あなたがのLtpaTokenで特に興味を持っている場合、あなたはそれを少し拡張する必要があります(おそらく資格)あなたのために十分でしょう:

Set tokens = callerSubject.getPrivateCredentials(); 

for (Object o : tokens) { 
    if(o instanceof SingleSignonToken) { 
     SingleSignonToken ssoToken = (SingleSignonToken)o; 
     System.out.println("getName: " + ssoToken.getName()+"<BR>"); 
     if("LtpaToken".equals(ssoToken.getName())){ 
      System.out.println("getExpiration: " + ssoToken.getExpiration()+"<BR>"); 
     } 
    } 
} 
0

SingleSignonTokenのgetExpiration()メソッドは、ミリ秒単位で有効期限を返します。このようなことができます。

ssoToken.getExpiration() - System.currentTimeMillis();

このトークンがどれだけ残っているか調べます。または、それを行うisValid()メソッドを呼び出すことができます。

関連する問題