2016-10-20 6 views
1

Ich verwende die CAS-Authentifizierung in meiner Spring MVC-Anwendung, die in einer WebLogic Server Version 12.1.2.0.0 bereitgestellt wird.CAS: javax.security.auth.callback.UnsupportedCallbackException: Unbekannter Rückruf:

Der CAS-Server (http://www.jasig.org/cas)

- Bedient CAS Login Webseite und authentifiziert Benutzer

- Probleme TGT Cookie (ticket TGT) so Benutzer nicht zu Login

jeder Umleitung auf CAS-Server vorhanden ist

- Leitet zurück zum Anwendungsserver mit Ticket = ST-xxx Service-Ticket in uRL für CAS-Client

zu überprüfen - Vali CAS Termine Service-Tickets für Anwendungsserver

Aber immer wenn ich aktualisieren Sie die Seite, die ich erkennen, dass die Ticket-Parameter unterschiedlich ist,

http://127.0.0.1:7001/devices_admin/welcome/welcome.do?ticket=ST-4857110-xJpv1gJ85niEGKBJHnQ5XZ5Et8pPY2kdXXkRzOlywdipakotoWUodeh4WCcovXPHWWxqbM6M0zNjxDy4uWSuazG-PHslUMVSXYCWTApMlTfLGC-m8dJiJ6e0zsxwwPOhzc5uNsRJh4dpl1mWcPdxaYhj21G  
http://127.0.0.1:7001/devices_admin/welcome/welcome.do?ticket=ST-4860089-wzJ3y2wzsMYHmpl8H7CenIURY68LSu0xzSKNB2o0XZiOrR60FGQHN9wSo83MuUraWFavzn3Qlp6VhtOzSEvdfwY-PHslUMVSXYCWTApMlTfLGC-JJBSzIydnDGzcECwzsiDiYCLUVecvzxZHmjIN2kDTewo  

so erhalte ich einen Fehler 404 - Nicht im Browser gefunden

Error 404--Not Found 



From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1: 

10.4.5 404 Not Found 

The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent. 

If the server does not wish to make this information available to the client, the status code 403 (Forbidden) can be used instead. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address. 

Hier meine weblogic.xml Datei

<?xml version="1.0" encoding="UTF-8"?> 
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd 
             http://www.bea.com/ns/weblogic/weblogic-web-app 
             http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"> 


    <!-- Example of a role mapped to a group provided by Ecas --> 
    <session-descriptor>  
     <cookie-path>/devices_admin</cookie-path>   
     <cookie-name>DEVICESJSESSIONID</cookie-name>   
     <url-rewriting-enabled>false</url-rewriting-enabled>   
    </session-descriptor> 
    <context-root>/devices_admin</context-root>  
    <security-role-assignment> 
     <role-name>authenticated</role-name> 
     <principal-name>INTERNET</principal-name>  
    </security-role-assignment>   
    <!-- Only needed if you want to allow some resources to be accessed by authenticated users who do not possess any role --> 
    <container-descriptor> 
     <allow-all-roles>true</allow-all-roles> 
    </container-descriptor>    
    <jsp-descriptor> 
     <precompile>true</precompile> 
    </jsp-descriptor> 

</weblogic-web-app> 

Es gibt auch eine Ausnahme st art the WL

javax.security.auth.callback.UnsupportedCallbackException: Unrecognized Callback  at weblogic.security.BaseCallbackHandler.handle(BaseCallbackHandler.java:44) 
     at weblogic.security.BaseCallbackHandler.handle(BaseCallbackHandler.java:32) 
     at com.bea.common.security.internal.service.CallbackHandlerWrapper.handle(CallbackHandlerWrapper.java:76) 
     at weblogic.security.service.internal.WLSJAASLoginServiceImpl$CallbackHandlerWrapper.handle(WLSJAASLoginServiceImpl.java:154) 
     at javax.security.auth.login.LoginContext$SecureCallbackHandler$1.run(LoginContext.java:947) 
     at javax.security.auth.login.LoginContext$SecureCallbackHandler$1.run(LoginContext.java:944) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.login.LoginContext$SecureCallbackHandler.handle(LoginContext.java:943) 

Antwort

0

Können Sie Ihre Spring XML-Datei überprüfen, wo Sie Ihre Diensteigenschaften konfiguriert haben. Ihre Rückruf-URL wird normalerweise in der Eigenschaft "service" konfiguriert. Diese URL ist normalerweise die URL Ihrer Clientanwendung, an die die Anfrage weitergeleitet werden soll, sobald sich der CAS authentifiziert hat.