Printemps de Sécurité - N'est visible WebSecurityExpressionHandler exemple peut être trouvé dans le contexte de l'application

Je vais avoir des problèmes d'affichage d'un lien de déconnexion dans une page JSP seulement si l'utilisateur est authentifié. Ici est l'exception que j'ai à cette ligne de la page JSP:

<sec:authorize access="isAuthenticated()">

Exception:

Stacktrace:
....

root cause

javax.servlet.jsp.JspException: No visible WebSecurityExpressionHandler instance could be found in the application context. There must be at least one in order to support expressions in JSP 'authorize' tags.
    org.springframework.security.taglibs.authz.AuthorizeTag.getExpressionHandler(AuthorizeTag.java:100)
    org.springframework.security.taglibs.authz.AuthorizeTag.authorizeUsingAccessExpression(AuthorizeTag.java:58)

Voici mon application-context-Security.xml:

<http auto-config='true' >
    <intercept-url pattern="/user/**" access="ROLE_User" />
    <logout logout-success-url="/hello.htm" />
</http>

<beans:bean id="daoAuthenticationProvider"
    class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
    <beans:property name="userDetailsService" ref="userDetailsService" />
</beans:bean>

<beans:bean id="authenticationManager"
    class="org.springframework.security.authentication.ProviderManager">
    <beans:property name="providers">
        <beans:list>
            <beans:ref local="daoAuthenticationProvider" />
        </beans:list>
    </beans:property>
</beans:bean>

<authentication-manager>
    <authentication-provider user-service-ref="userDetailsService">
        <password-encoder hash="plaintext" />
    </authentication-provider>
</authentication-manager>

Je comprends que je pourrais utiliser-expression="true" dans le http tag, mais cela signifie que je dois utiliser l'expression dans l'ordonnée à l'origine-les balises d'url et dans le code java. Est-il une solution?

  • Une autre observation. Le daoAuthenticationProvider et authenticationManager dans votre configuration ne sont pas utilisées.
InformationsquelleAutor dukable | 2012-07-21