2016-10-20 4 views
1

J'utilise l'authentification CAS dans mon application Spring MVC déployée dans une version de WebLogic Server: 12.1.2.0.0.CAS: javax.security.auth.callback.UnsupportedCallbackException: non reconnu Rappel:

Le serveur CAS (http://www.jasig.org/cas)

- Serves CAS page Web de connexion et authentifie les utilisateurs

- Questions cookies TGT (ticket d'octroi) ainsi l'utilisateur ne dispose pas connexion chaque Rediriger vers le serveur CAS

- Retour au serveur redirige d'application avec ticket = ticket de service ST-xxx dans l'URL pour le client CAS pour vérifier

- Vali date tickets de service CAS pour les serveurs d'application

Mais chaque fois que j'actualisez la page, j'ai réalisé que le paramètre de billets est différent,

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  

si je reçois une erreur 404 - Not Found dans le navigateur

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. 

Voici mon fichier weblogic.xml

<?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> 

Il y a aussi une exception st Est-ce que le 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) 

Répondre

0

Pouvez-vous vérifier votre fichier print de printemps où avez configuré vos propriétés de service. Votre URL de rappel est généralement configurée dans la propriété "service". Cette URL est généralement l'URL de l'application cliente où vous souhaitez que la requête soit redirigée une fois que le CAS a été authentifié.