![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring security
文章平均质量分 73
天才小小布
这个作者很懒,什么都没留下…
展开
-
Spring Security(01)——初体验
首先我们为Spring Security专门建立一个Spring的配置文件,该文件就专门用来作为Spring Security的配置。使用Spring Security我们需要引入Spring Security的NameSpace。beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="http:转载 2016-05-26 15:46:56 · 992 阅读 · 0 评论 -
Spring Security(13)——session管理
Spring Security通过http元素下的子元素session-management提供了对Http Session管理的支持。 1.1 检测session超时 Spring Security可以在用户使用已经超时的sessionId进行请求时将用户引导到指定的页面。这个可以通过如下配置来实现。 ...转载 2016-05-26 16:12:30 · 1661 阅读 · 0 评论 -
Spring Security(14)——权限鉴定基础
Spring Security的权限鉴定是由AccessDecisionManager接口负责的。具体来说是由其中的decide()方法负责,其定义如下。 void decide(Authentication authentication, Object object, Collection configAttributes) throws AccessDeniedEx转载 2016-05-26 16:13:26 · 1289 阅读 · 0 评论 -
Spring Security(15)——权限鉴定结构
1.1 权限 所有的Authentication实现类都保存了一个GrantedAuthority列表,其表示用户所具有的权限。GrantedAuthority是通过AuthenticationManager设置到Authentication对象中的,然后AccessDecisionManager将从Authentication中获取用户所具有的GrantedAuthorit转载 2016-05-26 16:14:26 · 609 阅读 · 0 评论 -
Spring Security(16)——基于表达式的权限控制
Spring Security允许我们在定义URL访问或方法访问所应有的权限时使用Spring EL表达式,在定义所需的访问权限时如果对应的表达式返回结果为true则表示拥有对应的权限,反之则无。Spring Security可用表达式对象的基类是SecurityExpressionRoot,其为我们提供了如下在使用Spring EL表达式对URL或方法进行权限控制时通用的内置表达式。转载 2016-05-26 16:18:08 · 2496 阅读 · 0 评论 -
Spring Security(17)——基于方法的权限控制
之前介绍的都是基于URL的权限控制,Spring Security同样支持对于方法的权限控制。可以通过intercept-methods对某个bean下面的方法进行权限控制,也可以通过pointcut对整个Service层的方法进行统一的权限控制,还可以通过注解定义对单独的某一个方法进行权限控制。 1.1 intercept-methods定义方法权限控制 inte转载 2016-05-26 16:19:06 · 4326 阅读 · 0 评论 -
Spring Security(18)——Jsp标签
Spring Security也有对Jsp标签的支持的标签库。其中一共定义了三个标签:authorize、authentication和accesscontrollist。其中authentication标签是用来代表当前Authentication对象的,我们可以利用它来展示当前Authentication对象的相关信息。另外两个标签是用于权限控制的,可以利用它们来包裹需要保护的内容,通常是超链转载 2016-05-26 16:19:44 · 1046 阅读 · 0 评论 -
Spring Security(19)——对Acl的支持
Acl的全称是Access Control List,俗称访问控制列表,是用以控制对象的访问权限的。其主要思想是将某个对象的某种权限授予给某个用户,或某种GrantedAuthority(可以简单的理解为某种角色),它们之间的关系都是多对多。如果某一个对象的某一操作是受保护的,那么在对该对象进行某种操作时就需要有对应的权限。 1.1 准备工作 使用Spring Se转载 2016-05-26 16:20:44 · 2198 阅读 · 1 评论 -
Spring Security(20)——整合Cas
众所周知,Cas是对单点登录的一种实现。本文假设读者已经了解了Cas的原理及其使用,这些内容在本文将不会讨论。Cas有Server端和Client端,Client端通常对应着我们自己的应用,Spring Security整合Cas指的就是在Spring Security应用中整合Cas Client,已达到使用Cas Server实现单点登录和登出的效果。本文旨在描述如何在Spring Secur转载 2016-05-26 16:21:47 · 3925 阅读 · 0 评论 -
Spring Security(12)——Remember-Me功能
1.1 概述 Remember-Me是指网站能够在Session之间记住登录用户的身份,具体来说就是我成功认证一次之后在一定的时间内我可以不用再输入用户名和密码进行登录了,系统会自动给我登录。这通常是通过服务端发送一个cookie给客户端浏览器,下次浏览器再访问服务端时服务端能够自动检测客户端的cookie,根据cookie值触发自动登录操作。Spring Sec转载 2016-05-26 16:11:42 · 858 阅读 · 0 评论 -
Spring Security(11)——匿名认证
对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticationToken存放在SecurityContextHolder中,这就是所谓的匿名认证。这样在以后进行权限认证或者做其它操作时我们就不需要再判断SecurityContextHolder中持有的Authentication对象是否为null了,而直接把它当做一个正常的Authentic转载 2016-05-26 16:10:39 · 6102 阅读 · 0 评论 -
Spring Security(02)——关于登录
1.1 form-login元素介绍 http元素下的form-login元素是用来定义表单登录信息的。当我们什么属性都不指定的时候Spring Security会为我们生成一个默认的登录页面。如果不想使用默认的登录页面,我们可以指定自己的登录页面。 1.1.1 使用自定义登录页面 自定义登录页面是通过login-page属性来指定的。提到log转载 2016-05-26 15:49:03 · 1108 阅读 · 0 评论 -
Spring Security(03)——核心类简介
1.1 Authentication Authentication是一个接口,用来表示用户认证信息的,在用户登录认证之前相关信息会封装为一个Authentication具体实现类的对象,在登录认证成功之后又会生成一个信息更全面,包含用户权限等信息的Authentication对象,然后把它保存在SecurityContextHolder所持有的SecurityContext转载 2016-05-26 15:52:41 · 1340 阅读 · 0 评论 -
Spring Security(04)——认证简介
1.1 认证过程 1、用户使用用户名和密码进行登录。 2、Spring Security将获取到的用户名和密码封装成一个实现了Authentication接口的UsernamePasswordAuthenticationToken。 3、将上述产生的token对象传递给AuthenticationManager进行登录认证。转载 2016-05-26 15:57:11 · 6103 阅读 · 1 评论 -
Spring Security(05)——异常信息本地化
Spring Security支持将展现给终端用户看的异常信息本地化,这些信息包括认证失败、访问被拒绝等。而对于展现给开发者看的异常信息和日志信息(如配置错误)则是不能够进行本地化的,它们是以英文硬编码在Spring Security的代码中的。在Spring-Security-core-xxx.jar包的org.springframework.security包下拥有一个以英文异常信息为基础的m转载 2016-05-26 15:58:39 · 926 阅读 · 0 评论 -
Spring Security(06)——AuthenticationProvider
认证是由AuthenticationManager来管理的,但是真正进行认证的是AuthenticationManager中定义的AuthenticationProvider。AuthenticationManager中可以定义有多个AuthenticationProvider。当我们使用authentication-provider元素来定义一个AuthenticationProvider时,如转载 2016-05-26 16:02:55 · 2420 阅读 · 0 评论 -
Spring Security(07)——缓存UserDetails
Spring Security提供了一个实现了可以缓存UserDetails的UserDetailsService实现类,CachingUserDetailsService。该类的构造接收一个用于真正加载UserDetails的UserDetailsService实现类。当需要加载UserDetails时,其首先会从缓存中获取,如果缓存中没有对应的UserDetails存在,则使用持有的UserD转载 2016-05-26 16:04:10 · 1704 阅读 · 0 评论 -
Spring Security(08)——intercept-url配置
1.1 指定拦截的url 通过pattern指定当前intercept-url定义应当作用于哪些url。"/**" access="ROLE_USER"/> 1.2 指定访问权限 可以通过access属性来指定intercept-url对应URL访问所应当具有的权限。access的值是一个字符串,其可以直接是一个权限的定义,也可以是一个表达转载 2016-05-26 16:07:43 · 1047 阅读 · 0 评论 -
Spring Security(09)——Filter
Spring Security的底层是通过一系列的Filter来管理的,每个Filter都有其自身的功能,而且各个Filter在功能上还有关联关系,所以它们的顺序也是非常重要的。 1.1 Filter顺序 Spring Security已经定义了一些Filter,不管实际应用中你用到了哪些,它们应当保持如下顺序。 (1)ChannelProcessi转载 2016-05-26 16:09:05 · 521 阅读 · 0 评论 -
Spring Security(10)——退出登录logout
要实现退出登录的功能我们需要在http元素下定义logout元素,这样Spring Security将自动为我们添加用于处理退出登录的过滤器LogoutFilter到FilterChain。当我们指定了http元素的auto-config属性为true时logout定义是会自动配置的,此时我们默认退出登录的URL为“/j_spring_security_logout”,可以通过logout元素的l转载 2016-05-26 16:09:56 · 4099 阅读 · 0 评论