Ответ 1
Чтобы использовать выражения для защиты отдельных URL-адресов, вам сначала нужно установить атрибут use-expressions в элементе в true
<http use-expressions="true">
См. Spring Документ безопасности
Попытка проверить, зарегистрирован ли пользователь. Я использую следующий код:
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<sec:authorize access="isAuthenticated()">
YES, you are logged in!
</sec:authorize>
Но я получаю следующий erorr?
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.
at org.springframework.security.taglibs.authz.AuthorizeTag.getExpressionHandler(AuthorizeTag.java:100)
at org.springframework.security.taglibs.authz.AuthorizeTag.authorizeUsingAccessExpression(AuthorizeTag.java:58)
at org.springframework.security.taglibs.authz.AuthorizeTag.doStartTag(AuthorizeTag.java:48)
Чтобы использовать выражения для защиты отдельных URL-адресов, вам сначала нужно установить атрибут use-expressions в элементе в true
<http use-expressions="true">
См. Spring Документ безопасности
Значение use-expressions = "true" в элементе http будет работать, но все ваши параметры безопасности как в коде Java, так и в контексте безопасности должны использовать обозначения выражений. Это может быть проблемой, если в настоящее время вы используете стандартные записи безопасности.
Чтобы использовать оба выражения и стандартные обозначения, просто объявите новый bean в вашем контексте безопасности, например:
<beans:bean class="org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler"/>