2017-12-08 4 views
0

Ich teste gerade eine Webanwendung, die auf IBM Websphere Application Server implementiert ist. Ich verstehe, dass ich das LTPAToken-Timeout über die Konsolenkonfiguration festlegen kann. Gibt es jedoch eine Möglichkeit, die Timeout-Dauer oder einen Listener in JAVA abzurufen, um anzuzeigen, dass das ltpatoken abgelaufen ist?Get ltpatoken2 Ablaufzeit

+0

Die allgemeine Dauer oder für die einzelnen ltpa-Token? Die allgemeine Einstellung sollte durch wsadmin (Skript oder Java-Code) abrufbar sein, aber ich weiß nicht genau, wie dieser Wert abgerufen wird. Können Sie für den einzelnen Token den Ablauf vom LTPA-Token-Cookie abrufen? – DanielBarbarian

+0

Hallo, ich betrachte beide tatsächlich. Ich habe die verfügbaren Methoden für den ltpatoken-Cookie durchsucht und kann nur das maximale Alter abrufen, von dem ich nicht denke, dass es die Zeitüberschreitung ist. – Sebastian

+0

Aber auf jedem Cookie sollte ein Ablaufdatum festgelegt sein. Oder vielleicht ist der Ablauf auf etwas anderes festgelegt. – DanielBarbarian

Antwort

0

Sie können das Token Ablaufzeit in Java-Code wie diese erhalten (dies wird Ihnen Credential Ablaufzeit geben)

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

, wenn Sie insbesondere in LtpaToken interessiert sind, müssen Sie es ein bisschen verlängern (aber wahrscheinlich Berechtigungsnachweis wird für Sie genug sein):

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

die SingleSignonToken der getExpiration() Methode gibt die Ablaufzeit in Millisekunden. Sie können so etwas tun,

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

um herauszufinden, wie viel Zeit dieses Token verlassen hat. Oder Sie können die isValid() -Methode aufrufen, die das für Sie erledigt.