春季春季安全瓷砖.如何使用磁贴页面定义设置表单登录?

我有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.

上一篇:ElasticSearch+Spark 构建高相关性搜索服务&千人千面推荐系统


下一篇:嵌套对象如何从一种类型转换为另一种类型