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

 

    (持续更新中.....

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值