У меня есть безопасность на уровне URL в помещенном месте, а также на уровне метода.Но моя безопасность на уровне метода обходится, когда пользователь прошел аутентификацию на уровне URL!Я рассмотрел этот вопрос далее, и кажется, что следующая защита на уровне URL:
intercept-url pattern="/**" access="ROLE_USER"
переопределит любую защиту уровня моего метода (например, фрагмент кода ниже).
@PreAuthorize("hasRole('ROLE_SUPERVISOR')")
public String supervisorRoleOnly()
{
return "success!!!" ;
}
Я бы подумал, что этот метод выдаст ошибку отказа в доступе, но нет, любой ROLE_USER может получить доступ к этому методу, как только они уже аутентифицированы на уровне URL.
У меня есть это вмой security-config.xml
:
<global-method-security pre-post-annotations="enabled" >
<expression-handler ref="expressionHandler"/>
</global-method-security>
Чего мне не хватает?