Spring+SpringSecurity 学习总结

来源:互联网 发布:win7如何更改网络位置 编辑:程序博客网 时间:2024/04/29 08:36

Spring-Security易于与已有项目融合,所以以下步骤是在已有项目的基础上直接添加Spring-Security完成的。

 

 

1、导入Spring-Securityjar

 

整个的项目的jar包如下所示:

 

2、在原有的Web.xml文件中添加Spring-Security拦截器,使其在整个的项目中起作用。

代码如下所示:

<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>

 

<filter-name>springSecurityFilterChain</filter-name>此处程序必须这样写,因为Spring-Security的机制就是这样的。

<url-pattern>/*</url-pattern>的作用是拦截所有的URL。

 

 

3、在src下建立applicationContext-security.xml文件

 

在applicationContext-security.xml中配置Spring-Security,使其拦截机制生效,如下所示:

<http auto-config='true' >

<intercept-url pattern="/index.html" access="ROLE_ADMIN" />

<intercept-url pattern="/**" access="ROLE_USER" />

</http>

 

 对于index.html这个URL,只有拥有ROLE_ADMIN权限才可以访问。

 对于其他的URL,具有ROLE_USER权限的用户都可以访问。

从此可以看出Spring-Security中权限的分配是以ROLE开头的,且是固定的。

 

4、将用户权限写在applicationContext-security.xml文件中,

如下所示:

<authentication-manager alias="authenticationManager">

<authentication-provider>

<user-service>

<user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />

<user name="user" password="user" authorities="ROLE_USER" />

</user-service>

</authentication-provider>

</authentication-manager>

 

 

创建名字为admin的用户,密码为admin,具有的权限为:ROLE_USER,ROLE_ADMIN。

创建名为user的用户,密码为:user,具有的权限为:ROLE_USER。

 

 

此时,就将Spring-Security加入到了我们已有的项目中了。

 

运行之后,访问localhost:8080/index.html效果如下:

 

我们发现浏览器中的地址自动变为http://localhost:8080/SpringSecurity01/spring_security_login;jsessionid=4E3489FCDD5535F1487B6148CDBE74AA

 

说明,Spring-Security已经成功的加入到我们的项目中了。

 

输入错误的用户名和密码,如12 , 123456

效果如下所示:

 

输入正确的用户名,密码如admin , admin

效果如下所示:

 


 

 

至此Spring-Security就被加入到我们的项目中并起到了分配权限的作用。

 

 

0 0