Java 控制台和受限文件夹中的spring安全错误不起作用

Java 控制台和受限文件夹中的spring安全错误不起作用,java,jsf-2,spring-security,Java,Jsf 2,Spring Security,问题1: 我已经在我的应用程序中设置了spring安全性,但是现在我有一个奇怪的问题。 我从spring security中学到的是,如果您设置了这行代码,则不需要在方法上方添加这行代码@RolesAllowed{ROLE_ADMIN} <sec:http auto-config="true" access-denied-page="/faces/accessDenied.xhtml"> <sec:form-login login-page="/faces/login.

问题1:

我已经在我的应用程序中设置了spring安全性,但是现在我有一个奇怪的问题。 我从spring security中学到的是,如果您设置了这行代码,则不需要在方法上方添加这行代码@RolesAllowed{ROLE_ADMIN}

<sec:http auto-config="true" access-denied-page="/faces/accessDenied.xhtml">
    <sec:form-login login-page="/faces/login.xhtml" />
    <sec:intercept-url pattern="/faces/admin/**" access="ROLE_ADMIN" />
</sec:http>
但显然,我可以转到/faces/admin文件夹中的页面,而不需要spring security将我重定向到登录页面

问题2:

当我的方法上面有@RoleAllowed{ROLE_ADMIN}代码时,它会将我重定向到登录页面并正常工作,但使用这一个,我在控制台中遇到了拒绝访问错误,但应用程序仍然正确运行了大量错误代码。在控制台中出现拒绝访问错误可以吗?如果不能,最好的处理方法是什么

我仍然希望拥有受限页面文件夹,并且不必在admin文件夹中的所有方法之上写入@RolesAllowed

PS:这是一个JSF2.0项目


谢谢大家,干杯。

问题1:我想您错过了web.xml中的DelegatingFilterProxy。配置如下:

<filter>
  <filter-name>springSecurityFilterChain</filter-name>
  <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
  <filter-name>springSecurityFilterChain</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>
并按如下方式配置http元素:

<http auto-config="true" >
   <intercept-url pattern="/faces/login.xhtml*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
   <intercept-url pattern="/faces/admin/**" access="ROLE_ADMIN" />
   <access-denied-handler error-page="/faces/accessDenied.xhtml" />
   <form-login login-page='/faces/login.xhtml' default-target-url='/faces/index.xhtml'
        always-use-default-target='true'/>
</http>
使用拒绝访问处理程序代替拒绝访问页面属性,因为上述属性已被弃用

问题2:是的,如果您第一次以匿名用户身份将日志级别设置为调试和访问受保护的资源,这是正常的。见本节第1.3节