Я искал ответ, но не нашел его.Если я добавлю <intercept-url pattern="/test*" access="ROLE_USER" />
в <form-login>
моего spring-security.xml, все будет работать предсказуемо.Но если я хочу, чтобы @RolesAllowed("ROLE_ADMIN")
действовал для метода:
@RolesAllowed("ROLE_ADMIN")
@RequestMapping(value="/test", method = RequestMethod.GET)
public String test() {
return "test";
}
И если spring-security.xml выглядит следующим образом (jsr250-аннотации включены):
<http auto-config="true">
<form-login login-page="/login.html"
default-target-url="/welcome.html"
authentication-failure-url="/loginfailed.html" />
<logout logout-success-url="/logout.html" />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="john" password="doe" authorities="ROLE_ADMIN" />
<user name="jane" password="doe" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
<global-method-security secured-annotations="enabled" jsr250-annotations="enabled" />
ХорошоВ этом случае и Джон, и Джейн могут получить доступ к тестовой странице.Я думаю, что пропустил что-то простое, помощь была бы оценена.