2019独角兽企业重金招聘Python工程师标准>>>

maven 构建 springmvc + spring security 权限控制示例。

介绍 :Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。用户认证指的是验证某个用户是否为系统中 的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。用户授权指的是验证某个用户 是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说, 系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。

对于上面提到的两种应用情景,Spring Security 框架都有很好的支持。在用户认证方面,Spring Security 框架支持主流的认证方式,包括 HTTP 基本认证、HTTP 表单验证、HTTP 摘要认证、OpenID 和 LDAP 等。在用户授权方面,Spring Security 提供了基于角色的访问控制和访问控制列表(Access Control List,ACL),可以对应用中的领域对象进行细粒度的控制。下面是spring security的入门小例子。

项目文件结构:

所需的jar包:

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>WebApp_Test</groupId><artifactId>WebApp_Test</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><properties><spring.version>3.0.5.RELEASE</spring.version></properties><dependencies><!-- Spring 3 dependencies --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><!-- Spring Security --><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><version>${spring.version}</version></dependency></dependencies><build><finalName>WebApp_Test</finalName><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.6</source><target>1.6</target></configuration></plugin></plugins></build></project>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="3.0"><display-name>WebApp_Test</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- spring mvc --><servlet><servlet-name>spring-mvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring-mvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-mvc-servlet.xml,/WEB-INF/spring-security.xml</param-value></context-param><!-- 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></web-app>

spring-mvc-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"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.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"><context:component-scan base-package="com.controller" /><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix"><value>/WEB-INF/pages/</value></property><property name="suffix"><value>.jsp</value></property></bean></beans>

spring-security.xml

<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/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/securityhttp://www.springframework.org/schema/security/spring-security-3.0.3.xsd"><http auto-config="true"><intercept-url pattern="/hello*" access="ROLE_USER" /></http><authentication-manager><authentication-provider><user-service><user name="admin" password="123456" authorities="ROLE_USER" /></user-service></authentication-provider></authentication-manager></beans:beans>

HelloController

package com.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;@Controller
@RequestMapping("/hello")
public class HelloController {@RequestMapping(method = RequestMethod.GET)public ModelAndView  printHello() {return new ModelAndView("hello", "message", "Hello Spring Security !");}
}

hello.jsp页面

<html>
<body><h1>Message : ${message}</h1>
</body>
</htm

访问 http://localhost:8080/WebApp_Test/hello    进入Spring Securtiy 框架就自动产生的一个登录页面

输入User:admin,Password:123456 就可以进入之前请求页面了

附项目源码:http://www.oschina.net/code/snippet_137649_17023

转载于:https://my.oschina.net/huangcongmin12/blog/99560

maven 构建 springmvc + spring security 权限控制示例相关推荐

  1. 8.Spring Security 权限控制

    Spring Security权限控制可以配合授权注解使用,具体有哪些注解可以参考Spring-Security保护方法.接着上一节,要开启这些注解,只需要在Spring Security配置文件中添 ...

  2. Spring Security 权限控制

    日积月累,水滴石穿

  3. Jsp Spring Security 权限管理系统

    Jsp Spring Security 权限管理系统 权限管理搭建要的问题: 1.区分Authentication(验证)与 Authorization(授权) 验证 这个用户是谁? 用户身份可靠吗? ...

  4. 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...

  5. 孙宇java_[JAVA] 孙宇老师Struts2+Hibernate4+Maven+EasyUI+SpringMvc+Spring+Mybatis+Maven整合课程...

    资源介绍 孙宇老师Struts2+Hibernate4+Maven+EasyUI+SpringMvc+Spring+Mybatis+Maven整合课程 ===============课程目录===== ...

  6. spring security logout(spring security登出示例)

    ** spring security logout(spring security登出示例) ** 在学习实现spring security登出的时候发现了一篇外文,感觉写的挺好,这里斗胆尝试翻译出来 ...

  7. Maven搭建Springmvc+Spring+Hibernate+html

    最近在学前端,由于之前是干Android和Java所以顺便就搞搞Web的东西.于是就摸索了用Maven搭建Springmvc+Spring+Hibernate+html的工程,废话不多说. 工具:Ec ...

  8. Spring Security权限管理系统开发实战

    源码地址 链接:https://pan.baidu.com/s/1PCr0FUYevO9VsKIwdPjnug 提取码:1b6d 课程采用目前市面上比较热门的技术Vue.Spring Boot.Spr ...

  9. spring 的权限控制:security

    下面我们将实现关于Spring Security3的一系列教程.  最终的目标是整合Spring Security + Spring3MVC  完成类似于SpringSide3中mini-web的功能 ...

最新文章

  1. 源码学习【HashMap第一篇】HashMap到底是怎么put的?
  2. Web Service security UserNameToken 使用
  3. linux分配端口未抢占端口,Linux命令之awk:基础知识(一)
  4. MyBatis获取参数值的两种方式以及传参情况
  5. 107 nginx rewrite规则和alias
  6. Oracle:grouping和rollup
  7. docker的bridge网络
  8. SFR算法详解(三)——浅析关于SFR的一些物理意义及原理
  9. 浮层引导页Activity
  10. [转载]借助LVS+Keepalived实现负载均衡
  11. 异地容灾系统方案设计与分析
  12. 【Column Generation思考-02】|从对偶的角度理解Cutting Stock Problem【更新版本】
  13. 1.3读论文笔记:M. Raissi a等人的Physics-informed neural networks:A deep learning framework for solving forw..
  14. 服务器删除安装的系统教程,服务器安装系统教程
  15. 基于uFUN开发板和扩展板的联网校准时钟
  16. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operat
  17. mybatis带引号_mybatis-MyBatis
  18. 记一次vue踩坑 this.$router.back()在ios失效,试了各种返回,最后发现是因为url传参的原因,去掉参数就可以了。。
  19. 诚之和:抛售11亿美元股票,马斯克亲自砸盘特斯拉
  20. 第七讲:5.物联网开关——自动化控制任务光照控制台灯实验例程

热门文章

  1. JSP的9个内置对象-application
  2. scrapy newspaper bug
  3. java游戏暂停弹出字体_小白写了个java的小游戏 想加个暂停的功能 无从下手 求大佬们帮...
  4. python中提取pdf文件某些页_人工智能|Python提取PDF中的文本并朗读
  5. kafka:topic为什么要进行分区?副本机制是如何做的?
  6. 2021农村电商发展趋势报告
  7. 为什么有些女孩在发现渣男的真面目以后,还喜欢他们?
  8. 友元函数重载+运算符
  9. 作者:张丽丽(1984-),女,中国科学院计算机网络中心助理研究员
  10. 作者:黄剑(1993-),男,清华大学计算机科学与技术系硕士生