[英]Spring Security Login form
我需要你的帮助。 我需要使用Spring Security的默认登录表单。 当我启动webapp时,它应该打开登录页面,并在成功登录后将用户重定向到我的jsp页面,而无需寻找角色(管理员或只是用户)。 我尝试了这个:
<http auto-config="true" create-session="stateless"
use-expressions="true">
<intercept-url pattern="/_ah*" access="permitAll" />
<intercept-url pattern="/pages/*" access="hasRole('ROLE_ADMIN')" />
<intercept-url pattern="/index*" access="hasRole('ROLE_ADMIN')" />
</http>
<authentication-manager>
<authentication-provider>
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="working_sql_script"
authorities-by-username-query="other_working_sql_script" />
</authentication-provider>
</authentication-manager>
但是它在启动时会打开空白页面,我需要在浏览器中输入登录页面: http://webapp/spring_security_login
。 如何配置它以在启动时打开登录页面并在登录后重定向到我的JSP? 另外,我在web.xml中写道
<welcome-file-list>
<welcome-file>/WEB-INF/pages/index.jsp</welcome-file>
</welcome-file-list>
但启动时仍会打开空白页。
您需要在应用程序中定义一个页面,而没有角色限制。 并将该页面设置为默认表单登录。 验证成功后,重定向到其他页面。
我的spring-security.xml部分代码如下
<http pattern="/login" security="none"/>
<http pattern="/accessDenied" security="none"/>
<http auto-config="true">
<remember-me/>
<!-- Don't set any role restrictions on login.jsf -->
<intercept-url pattern="/login" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/pages/admin/*" access="ROLE_SADMIN" />
<intercept-url pattern="/pages/applicants/*" access="ROLE_SADMIN,ROLE_APPLICANT" />
<!-- Set the login page and what to do if login fails -->
<form-login login-page="/login" authentication-failure-url="/login"
default-target-url="/manageHome" authentication-success-handler-ref="customAuthenticationSuccessHandler"/>
<logout success-handler-ref="customLogoutSuccessHandler" />
<access-denied-handler ref="customAccessDeniedHandler"/>
</http>
感谢所有试图帮助我的人。 我解决了这个问题。 并为其他会遇到此类问题的开发人员写这篇文章。 我创建了欢迎页面,所有用户均可访问,并且匿名。 页面代码:
<a href="index">Catalog</a>
<br>
<a href="registration">Registration</a>
我的spring-security文件包含以下内容:
<http auto-config="true" create-session="stateless"
use-expressions="true">
<intercept-url pattern="/welcome" access="isAnonymous()" />
<intercept-url pattern="/registration" access="isAnonymous()" />
<intercept-url pattern="/index" access="isAuthenticated()" />
<form-login default-target-url="/main"/>
</http>
和受保护的主页:
<h2>Catalog</h2>
<a href="logout">Logout</a>
<a href="goods">Goods</a>
<a href="vendors">Vendors</a>
Spring Security仅在登录后才允许访问此页面。 Spring Security生成的登录页面。 希望这会对某人有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.