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表单的认证登录就完成了,后面要做的就是根据实际情况改装,深入。

    (持续更新中.....

猜你喜欢

转载自alexqdjay.iteye.com/blog/1972872
今日推荐