je voudrais obtenir la méthode dans mon bean session géré pour rôle spécifique "ROLE_ADMIN"
Spring Security: la méthode n'est pas garanti avec l'annotation @PreAuthorize
config (applicationContext-security.xml):
<global-method-security pre-post-annotations="enabled" jsr250-annotations="enabled" secured-annotations="enabled"/>
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/**" access="isAuthenticated()"/>
<intercept-url pattern="/**" access="permitAll()"/>
<form-login
login-processing-url="/j_spring_security_check"
login-page="/login.jsf"
default-target-url="/main.jsf"
authentication-failure-url="/login.jsf" />
<session-management>
<concurrency-control max-sessions="1" error-if-maximum-exceeded="false" />
</session-management>
</http>
<authentication-manager alias="authenticationManager">
<authentication-provider>
<user-service>
<user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />
<user name="user1" password="user1" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
<beans:bean id="loggerListener" class="org.springframework.security.authentication.event.LoggerListener"/>
Bean méthode sécurisée:
@PreAuthorize("hasRole('ROLE_ADMIN')")
public String buy() {
...
}
Lorsque je me suis connecté sous user1
ou anonym
et cliquez sur le bouton « acheter » sur le Web- page, il est toujours redirigé vers la page suivante.
Je m'attends à ce qu'une exception d'accès refusé se produise, ce qui n'est pas le cas.
effectivement essayé, c'est la même chose. Comme je le comprends, les annotations sécurisées sont par exemple. pour l'annotation @Secured, que je n'utilise pas du tout.J'utilise pré-annotation @PreAuthorize – sergionni
@sergionni: Sory, je vais modifier pour vous laisser une réponse plus complète. – Iogui
@logui, ok), np.Je suis l'analyse de ma config, peut-être son problème d'interception-url, je ne sais pas encore – sergionni