spring security 3.x 边学习边胡来(1)
1. 简介
? ?Spring Security基于Spring框架提供了一整套(相对)完整的web应用解决方案。Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。认证上包含http表单,http摘要、OpenID和LDAP等,在授权方面有ACL访问控制列表和基于角色的访问控制。
?
2. ?Hello World 型的基本简单配置
?
? ?2.1 Web.xml 添加 spring security 的过滤器
?
?
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:/spring-security.xml</param-value></context-param><!-- Filter --><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>
?
?
?
? ? 2.2 web.xml 中加入 spring-mvc 的配置用于control
??
<!-- Spring MVC --><servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:/springMVC.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern></servlet-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
?
?
? ?2.3 spring-security.xml 配置
?
?
<http auto-config='true'> <intercept-url pattern="/**" access="ROLE_USER" /></http
?
?
? ?最小的配置,auto-config=true 等于
?
<http> <form-login /> <http-basic /> <logout /> </http>
?
?
? intercept-url 即 拦截的url, "/**" 表示所有的全拦截了,access表示role_user的认证用户才能连接
? ?
? 2.4 form-login 配置
?
<sec:form-login login-page="/portal/login.jsp" authentication-failure-url="/portal/login.jsp?sb"/>
? ?
?
? ?这个已经是对form-login的个性配置了,login-page配置login的连接,取代默认的spring-security-check(记不清了,可以不配置的情况下看下,authentication-failure-url表示认证出错是跳转的url
?
? ?2.5 intercept-url 配置非认证用户都可以连接
??
?
<sec:intercept-url pattern="/portal/login.**" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
?
?
? ?2.6 logout配置
? ??
<sec:logout logout-url="/logout" logout-success-url="/portal/login.jsp"/>
?
?
? ?2.7 Authentication 配置
? ??
? ? 这边用的固定用户,实际项目可能不这样写,这例子就简便处理,后面再学习换成datasource
? ??
<sec:authentication-manager><sec:authentication-provider><sec:user-service><sec:user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN"/><sec:user name="jack" password="jack" authorities="ROLE_USER" /></sec:user-service></sec:authentication-provider></sec:authentication-manager>
?
?
3. 例子说明
? ?
? ? 到这可以运行例子了,当然如果form-login配置了login-page的话必须自己写个页面来登录,上面index.jsp等都自己随便写。
? ? 简单的http表单的认证登录就完成了,后面要做的就是根据实际情况改装,深入。
?
? ? (持续更新中.....)
?
?
?
?
?