【发布时间】:2013-03-08 20:26:35
【问题描述】:
我有一个 Spring Web 项目,它需要一个管理部分。我认为这部分会很简单,并且我会遇到安全问题,但我什至无法指向 /admin/ 部分。
我的 dispatcher-servelet.xml 中有以下内容用于将 JSP 文件映射到控制器:
<context:component-scan base-package="controller"/>
<context:component-scan base-package="controller.admin"/>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
现在在 /WEB-INF/jsp/ 中有一个标有“admin”的文件夹,我有 adminindex.jsp。我在 web.xml 中也有以下内容
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>redirect.jsp</welcome-file>
</welcome-file-list>
<security-constraint>
<display-name>Constraint1</display-name>
</security-constraint>
<security-constraint>
<display-name>admin pages</display-name>
<web-resource-collection>
<web-resource-name>Administration Pages</web-resource-name>
<description/>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>eCommerceAdmin</role-name>
</auth-constraint>
<!-- <user-data-constraint>
<description/>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>-->
</security-constraint>
</web-app>
当我尝试访问时
localhost:8080/NewWebsite/admin/adminindex.htm
,我明白了
对所请求资源的访问被拒绝
信息:上下文监听器: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@44d1bd08')
访问没有问题
localhost:8080/NewWebsite/index.htm,并且我还想对 admin 文件夹进行自动重定向,就像在根文件夹中一样。即去
localhost:8080/NewWebsite/ 指向 index.htm。
任何帮助都会很棒。
【问题讨论】:
-
如果您在此处提供更多代码,将很容易回答。只有这么多设置无济于事。您是否像 ROLE_ADMIN 一样向您的用户添加 ROLE??
-
抱歉,我不确定还要添加什么。我已经添加了 web.xml 的全部内容,但我不确定如何调整它以包含管理员角色?
-
你在哪里将
eCommerceAdmin这个角色添加到你的春天org.springframework.security.core.Authentication??? -
我认为这是之前的失败尝试,我忘记删除了。你知道我应该在哪里添加它吗?
标签: java spring spring-mvc