2017-04-18 1 views
-1

J'ai une application en cours d'exécution avec la version printemps-sécurité 2.0.4 et maintenant je dois changer cela à la version 4.2.0 ...migration Printemps-sécurité de 2.0.4 à 4.2.0

je créer connexion avec cet exemple:

http://facestutorials.icefaces.org/tutorial/spring-security-basic.html

springSecurityLogin.jspx

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<f:view xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:ice="http://www.icesoft.com/icefaces/component"> 
    <ice:outputDeclaration doctypeRoot="HTML" 
          doctypePublic="-//W3C//DTD HTML 4.01 Transitional//EN" 
          doctypeSystem="http://www.w3.org/TR/html4/loose.dtd"/> 
    <html> 
    <head> 
     <title>Spring Security Login</title> 
    </head> 
    <body> 
    <ice:form partialSubmit="false"> 
     <ice:panelGrid columns="2"> 
      <ice:outputLabel value="User Name" for="j_username"/> 
      <ice:inputText id="j_username" 
          value="#{loginBean.userId}" size="40" 
          maxlength="80"/> 
      <ice:outputLabel value="Password" for="j_password"/> 
      <ice:inputSecret id="j_password" 
          value="#{loginBean.password}" size="40" 
          maxlength="80"/> 
     </ice:panelGrid> 
     <ice:commandButton actionListener="#{loginBean.login}" value="Login"/> 
     <ice:messages style="color: red;"/> 
    </ice:form> 
    </body> 
    </html> 
</f:view> 

mon connexion méthode:

public void login(ActionEvent e) throws java.io.IOException { 
    FacesContext.getCurrentInstance().getExternalContext().redirect("/spring-authentication/j_spring_security_check?j_username=" + userId + "&j_password=" + password); 
} 

qui travaillait ... Mais quand je change la version de sécurité du printemps à 4.2.0 Je suis erreur http 404 lorsque vous essayez de vous connecter.

Quelqu'un sait ce qui se passe?

+1

Il existe des guides de migration. –

+0

Le guide de migration ne fonctionne pas avec les surfaces de glace ... – BrunoTS

+1

Qu'entendez-vous par là? –

Répondre

0

Le problème est le suivant ...

ressort de sécurité permettent l'authentification avec appel http GET ou POST, après Migrate, par défaut, il est autoriser uniquement les appels POST.

Pour le résoudre, il suffit d'insérer la ligne suivante sur votre AuthenticationFilter:

UsernamePasswordAuthenticationFilter.setPostOnly(false); 

Ce résoudre le problème.