我有spring_tiles Web应用程序,现在尝试向其添加spring安全性:
这是我TilesConfig.xml的安全之处:
<definition name="loginPage" extends="commonPage">
<put-attribute name="body" value="/WEB-INF/tiles/jsp/login_body.jsp" />
</definition>
这是我的弹簧映射部分:
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="openSessionInViewInterceptor" />
</list>
</property>
<property name="mappings">
<props>
<prop key="/main.htm">mainController</prop>
<prop key="/category.htm">viewCategoryController</prop>
<prop key="/good.htm">goodController</prop>
<prop key="/registration.htm">registrationController</prop>
<prop key="/login.htm">?</prop>
</props>
</property>
</bean>
这是applicationContext-security.xml的一部分:
<http auto-config='true'>
<intercept-url pattern="/**" access="ROLE_USER" />
<intercept-url pattern="/css/**" filters="none"/>
<intercept-url pattern="/js/**" filters="none"/>
<intercept-url pattern="/login.htm*" filters="none"/>
<form-login login-page="/login.htm" />
</http>
但是我想知道如何设置我的图块页面定义到映射.在所有其他页面中,我都使用了控制器,但是我想在那种情况下我不应该使用任何loginController,因为Spring Security会这样做.
所以,这是我的问题:如何在Spring Security中将图块loginPage映射到/login.htm?
解决方法:
默认情况下,带有磁贴的Spring Security的配置中没有特定内容.
如果您的登录页面磁贴的名称是loginPage,我想您应该在applicationContext-security.xml中使用以下内容:
<intercept-url pattern="/loginPage" filters="none"/>
<form-login login-page="/loginPage" />
如果您使用的是Spring Security,则登录页面将具有POST URL,该URL转到/ j_spring_security_check(默认情况下).这等效于loginController.