`
leman_zk
  • 浏览: 23964 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

【自学Spring Security】之第一个能运行的Sample

    博客分类:
  • SSH
阅读更多

     最近学习了SSH,越发觉得权限管理的重要性,上网看了一下权限管理框架,大致有Apache Shiro和Spring Security比较出名,因为刚学习了Spring,所以就选择Spring Security吧,上官网把jar包下载下来,运行了一下spring-security-samples-tutorial示例程序,感觉配置好难呀。上网搜索了一下Spring Security相关的文章,折腾了一下,没有跑通一个程序,感觉入门还是比较困难的,一上来就是相关概念头都大了。没办法,对照参考文档一步一步摸索吧。

    先做一个最简单的应用,二个页面:index.html和admin.html,分别代表具有ROLE_USER和ROLE_ADMIN权限的人可以访问的页面,当然具有ROLE_ADMIN权限的用户两个页面都可以访问了。

    首先新建web应用程序,导入tutorial实例程序下WEB-INF/lib下所有的jar文件,并将logbak.xml文件拷贝到src文件夹下。

    1.修改web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
		  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
           version="2.5">

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/applicationContext-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>
    
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

     原理很简单:listener用来加载配置文件,filter用来过滤所有访问请求。

    2.新建applicationContext-security.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    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-3.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">

    <debug />

    <http auto-config="true">
        <intercept-url pattern="/admin.jsp" access="ROLE_ADMIN"/>
        <intercept-url pattern="/**" access="ROLE_USER"/>
    </http>

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

</beans:beans>

   监听http请求,intercept-url中的权限要按照由细到粗的顺序排列,Spring Security从上到下匹配规则,符合条件即完成授权,若果上面两个intercept调换位置,任意请求都满足/**,则用户只要具有ROLE_USER权限则可以访问所有资源,包括/admin.jsp了。

    <authentication-manager>中定义了两个用户,权限之间用逗号隔开。

    3.新建index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>
  <head>
    <title>欢迎页面</title>
  </head>
  <body>
    <h2>这是首页</h2>
    <a href="admin.jsp">进入admin页面</a>
  </body>
</html>

    4.新建admin.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
<h2>管理员页面</h2>
</body>
</html>

 好了,大功告成,运行代码看一下吧。Spring Security自动为我们添加了登录页面,还是挺简单的。就到这里吧,虽然好多标签不知道什么意思,权限管理的相关概念也不清楚,慢慢摸索吧。高手路过请轻拍,谢谢啦。

0
0
分享到:
评论
3 楼 leman_zk 2012-03-05  
keer2345 写道
强烈推荐 http://lengyun3566.iteye.com/,更推荐看那本英文原版的

感谢,正在看,也是记录一下自己的新的。
2 楼 keer2345 2012-03-04  
强烈推荐 http://lengyun3566.iteye.com/,更推荐看那本英文原版的
1 楼 smith789 2012-03-04  
 

相关推荐

    Spring_Security-3.0.1_中文自学教程.pdf

    ### Spring Security 3.0.1 中文自学教程知识点概览 #### 一、Spring Security 简介 ##### 1.1 Spring Security 是什么? Spring Security 是一款强大的、高度可定制的身份验证与授权框架。它能够帮助开发者保护...

    Spring Security 4.1 中文文档@www.java1234.com.pdf

    版本历史是学习框架的重要一环,Spring Security自2003年推出以来,经过多个版本的迭代和改进,功能不断完善。例如,Spring Security 4.1版本在安全性配置上有了显著的提升,尤其是在Web应用程序安全性和授权方面...

    spring-sample:Spring 自学示例项目

    本项目"spring-sample"旨在为初学者提供一个全面、深入理解Spring框架的自学平台。通过此项目,我们可以一步步地学习和实践Spring的核心特性,包括依赖注入(DI)、面向切面编程(AOP)、数据访问以及Web应用等关键...

    Java Web整合开发完全自学手册:Struts+Hibernate+Spring+Eclipse源码

    《JavaWeb整合开发完全自学手册》主要介绍Struts、Hibernate、Spring、Eclipse的基础知识,如何整合这4个开源框架进行J2EE开发,如何基于MyEclipseIDE进行开发,J2EE开发的基础和基础环境搭配,Struts、Hibernate、...

    Spring5自学讲义

    【Spring5自学讲义】 Spring框架是Java领域中极为重要的轻量级开源框架,它以其卓越的依赖注入(DI)和面向切面编程(AOP)能力,以及强大的企业级服务支持,成为现代Java应用开发的基石。Spring5是其最新的版本,...

    spring3.0mvc自学教程ppt+注解教程+注解实例+springmybatis教程+项目实例+中文api (老师的心血)从入门到项目实战

    Spring 3.0 MVC 是一个强大的Java框架,用于构建企业级Web应用程序。它以其模块化、松耦合和高度可配置性而闻名。本自学教程集合了多种资源,旨在帮助初学者逐步掌握Spring 3.0 MVC的核心概念,并通过实际项目实例...

    SpringCloud项目实战各组件源代码案例

    Spring Cloud系列教程 Spring Boot Spring Cloud Stream 和 Kafka案例教程 springcloud生产者与消费者项目实战案例 Spring Cloud 中断路器 Circuit Breaker的应用 配置 Spring Cloud Config Server Spring Cloud ...

    springlive(共11章)

    1. **第一章:Spring概述** - Spring框架简介:了解Spring的起源、发展历程及在Java企业级应用中的地位。 - IoC(控制反转)与DI(依赖注入):讲解这两个核心概念,如何通过它们简化程序设计和管理对象间的依赖...

    Spring自学编程代码

    自学Spring所产生的代码,包含IOC、AOP的入门以及进阶,Spring与数据库(MySQL)的交互。(该资源不仅包含我写的代码,一切Spring、aspect、jdbc等所需jar包都俱全,项目导入就能跑起来)

    spring mvc 自学教程

    【Spring MVC 自学教程】 Spring MVC 是一个基于 Model-View-Controller(MVC)设计模式的轻量级 Web 开发框架。它使开发者能够轻松地将业务逻辑、数据处理和用户界面分离,从而提高代码的可维护性和复用性。 **...

    spring框架技术自学指导

    1. **Spring框架概述**:Spring是一个开源的Java平台,它为开发企业级应用提供了全面的解决方案。它主要由IoC(Inversion of Control,控制反转)容器、AOP(Aspect Oriented Programming,面向切面编程)、数据访问...

    自学SpringBoot--入门文档

    文档可能包括了创建第一个SpringBoot应用的步骤,这通常涉及创建一个主应用类,使用@SpringBootApplication注解来标识。这个注解会启动Spring的自动配置功能,它会根据你的类路径和依赖来配置应用。你还可以定义一个...

    blog项目自学.7z

    博客项目自学教程主要涵盖了SpringBoot、Thymeleaf、PageHelper和SpringSecurity四个核心技术和框架。下面将分别详细解释这些技术及其在项目中的应用。 **SpringBoot** SpringBoot是由Pivotal团队提供的全新框架,...

    Mybatis 最小依赖jar 不集成spring 自学练习版本

    1. **Mybatis核心Jar**:这个版本包含Mybatis框架的核心库,如mybatis.jar,其中包含了SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession等关键类,它们是Mybatis运行的基础。 2. **配置文件**:Mybatis的...

    Spring-Professional-Certification-Study-Guide.pdf

    安全性是构建现代企业级应用的重要考量,Spring Security为基于Spring的应用提供了一个全面的安全解决方案。学习指南中包含的内容包括如何利用Spring Security来保护应用程序,以及如何配置认证和授权等。 RESTful ...

    spring-mvc 自学文档(我自己总结的)

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建MVC模式的应用提供了强大的支持。本自学文档主要介绍了Spring MVC的基本概念和核心组件,适合初学者掌握其基本工作原理。 1. DispatcherServlet(前端控制...

    spring底层的学习之路

    总的来说,"Spring学习之路"资料包将带你走过Spring框架的基本知识,从Spring的核心原理到实战Spring MVC项目,是一条完整的自学路径。希望你在学习过程中不断积累,提升自己的Java Web开发能力。

    小马spring视频源码

    Spring框架是中国乃至全球开发者广泛使用的Java企业级应用开发框架,由Rod Johnson在其著作《Expert One-on-One J2EE Design and ...这个"小马spring视频源码"资源对于初学者和进阶者都是一个宝贵的自学材料。

    spring 入门教程(spring-reference)

    1. **依赖注入(Dependency Injection,DI)**:Spring的核心特性之一,通过DI,对象之间的依赖关系不再由对象自身管理,而是由外部容器(如Spring IoC容器)来控制。这种方式提高了代码的可测试性和可维护性。 2. ...

    Spring 入门例子

    依赖注入是 Spring 的核心特性之一,它允许开发者将对象之间的依赖关系解耦。在传统的Java应用程序中,一个类通常会创建它所依赖的对象,而在Spring中,这些依赖关系可以通过构造函数、setter方法或接口回调等方式...

Global site tag (gtag.js) - Google Analytics