【问题标题】:Cannot find a jsp view when spring security is applied应用spring security时找不到jsp视图
【发布时间】:2011-10-20 16:21:57
【问题描述】:

我有一个 java + spring web 应用程序并应用了 spring security 3.0。 使用安全拦截 url 我试图对特定视图(jobs.jsp)应用无过滤器,但是当我请求该 url 时,请求映射有效,但返回视图(ModelAndView as jobs.jsp)不起作用。

它给了我一个错误,说找不到 /WEB-INF/view/jobs.jsp ,但是文件就在那里。

我认为除非经过身份验证,否则 Spring Security 不允许访问此资源?

<security:http auto-config="true" use-expressions="true">
 <security:intercept-url pattern="/**" access="hasRole('admin')" />
 <security:intercept-url pattern="/resources/static/login.html" filters="none"/>
 <security:intercept-url pattern="/resources/static/home.html" filters="none"/>
 <security:intercept-url pattern="/home/*" filters="none"/>
 <security:intercept-url pattern="/job/all/*" filters="none"/>

 <security:intercept-url pattern="/resources/css/*" filters="none"/>
 <security:intercept-url pattern="/resources/js/*" filters="none"/>
 <security:intercept-url pattern="/resources/images/*" filters="none"/>

 <security:form-login login-page ="/resources/static/login.html"
                      authentication-failure-url="/resources/static/login.html"/>    
<security:logout logout-url="/logout"
                 logout-success-url="/resources/static/home.html"/>

【问题讨论】:

  • 我对你的问题有点困惑 - 你说“但是当我请求该 url 时,请求映射有效,但返回视图(ModelAndView as jobs.jsp)不起作用” - 什么你是这个意思吗?请提供您请求的具体 URL,以及您收到的确切消息(必要时补充日志)。此外,Spr Sec 不会对您的视图映射做任何事情,因此请确保您的映射在没有 Spring Security 的情况下工作(建议:从 web.xml 中完全删除 Spr Sec 过滤器)。

标签: java spring-mvc spring-security


【解决方案1】:

拦截url的顺序导致了问题。这个有效。

<security:intercept-url pattern="/job/all/*" access="isAnonymous()"/>
<security:intercept-url pattern="/**" access="hasRole('admin')" />

【讨论】:

猜你喜欢
  • 2016-11-14
  • 2017-10-04
  • 2023-02-24
  • 2015-12-01
  • 2013-11-27
  • 2013-01-27
  • 2016-06-24
  • 2015-02-17
  • 2015-11-17
相关资源
最近更新 更多