专注Java领域技术
我们一直在努力

Spring Security 珍藏版快速入门

原文始发于:Spring Security 珍藏版快速入门

一、前期配置

(1)pom.xml

		<dependency> 			<groupId>org.springframework.security</groupId> 			<artifactId>spring-security-web</artifactId> 			<version>${spring.security.version}</version> 		</dependency> 		<dependency> 			<groupId>org.springframework.security</groupId> 			<artifactId>spring-security-config</artifactId> 			<version>${spring.security.version}</version> 		</dependency> 

(2)web.xml

<context-param> 	<param-name>contextConfigLocation</param-name> 	<param-value>classpath:spring-security.xml</param-value> </context-param> <listener> 	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> 	<filter-name>springSecurityFilterChain</filter-name> 	<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> 	<filter-name>springSecurityFilterChain</filter-name> 	<url-pattern>/*</url-pattern> </filter-mapping> 

注意:这里的 springSecurityFilterChain 是固定的,不能修改
Spring Security 珍藏版快速入门

二、Spring Security 测试

spring-security.xml

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"        xmlns:security="http://www.springframework.org/schema/security"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://www.springframework.org/schema/beans                             http://www.springframework.org/schema/beans/spring-beans.xsd                             http://www.springframework.org/schema/security                             http://www.springframework.org/schema/security/spring-security.xsd">     <security:http auto-config="true" use-expressions="false">         <!-- intercept-url定义一个过滤规则 pattern表示对哪些url进行权限控制,             access属性表示在请求对应的URL时需要什么权限,             默认配置时它应该是一个以逗号分隔的角色列表,请求的用户只需拥有其中的一个角色就能成功访问对应             的URL -->         <security:intercept-url pattern="/**" access="ROLE_USER"/>         <!-- auto-config配置后,不需要在配置下面信息 <security:form-login /> 定义登录表单信息         <security:http-basic         /> <security:logout /> -->     </security:http>     <security:authentication-manager>         <security:authentication-provider>             <security:user-service>                 <security:user name="user" password="{noop}user" authorities="ROLE_USER"/>                 <security:user name="admin" password="{noop}admin" authorities="ROLE_ADMIN"/>             </security:user-service>         </security:authentication-provider>     </security:authentication-manager> </beans> 

此时启动服务器会自动跳转到登录验证界面:
Spring Security 珍藏版快速入门
只有输入 user-user ,才能正确跳转到 index 的默认界面

因为这里设置了所有角色要想访问必须有一个 ROLE_USER 的角色
Spring Security 珍藏版快速入门
比如这里使用 admin-admin 登录会提示403错误:403 权限不足的错误
Spring Security 珍藏版快速入门

三、案例:自定义页面(XML配置用户信息)

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"        xmlns:security="http://www.springframework.org/schema/security"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://www.springframework.org/schema/beans           http://www.springframework.org/schema/beans/spring-beans.xsd           http://www.springframework.org/schema/security           http://www.springframework.org/schema/security/spring-security.xsd">      <!-- 配置不过滤的资源(静态资源及登录相关)也就是这两个界面不做权限控制 -->     <security:http security="none" pattern="/login.html" />     <security:http security="none" pattern="/failer.html" />     <security:http auto-config="true" use-expressions="false" >         <!-- 配置资料连接,表示任意路径都需要ROLE_USER权限 -->         <security:intercept-url pattern="/**" access="ROLE_USER" />         <!-- 自定义登陆页面,login-page 自定义登陆页面 authentication-failure-url 用户权限校验失败之后才会跳转到这个页面,如果数据库中没有这个用户则不会跳转到这个页面。             default-target-url 登陆成功后跳转的页面。 注:登陆页面用户名固定 username,密码 password,action:login -->         <security:form-login login-page="/login.html"                              login-processing-url="/login" username-parameter="username"                              password-parameter="password" authentication-failure-url="/failer.html"                              default-target-url="/success.html"         />         <!-- 关闭CSRF,默认是开启的 -->         <security:csrf disabled="true" />     </security:http>      <security:authentication-manager>         <security:authentication-provider>             <security:user-service>                 <security:user name="user" password="{noop}user"                                authorities="ROLE_USER" />                 <security:user name="admin" password="{noop}admin"                                authorities="ROLE_ADMIN" />             </security:user-service>         </security:authentication-provider>     </security:authentication-manager> </beans> 

此时登录成功和失败就会跳转到自己指定的页面中:
Spring Security 珍藏版快速入门

三、案例:自定义页面(数据库存储用户信息)

具体使用可参考

赞(0) 打赏
未经允许不得转载:Java小咖秀 » Spring Security 珍藏版快速入门
免责声明

抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专注Java技术 100年

联系我们联系我们

你默默的关注就是最好的打赏~

支付宝扫一扫打赏

微信扫一扫打赏