- 浏览: 7929093 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
方法一、JSP中检查user principal
<c:if test="${pageContext.request.userPrincipal.name != null}">
<label>
Hi ${pageContext.request.userPrincipal.name} ! Welcome to our site
</label>
</c:if>
<c:choose>
<c:when test="${pageContext.request.userPrincipal.authenticated}">Show something</c:when>
<c:otherwise>Show something else</c:otherwise>
</c:choose>
方法二、检查角色
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<sec:authorize access="hasAnyAuthority('ROLE_ADMIN', 'ROLE_USER')" var="isAuthenticated">
</sec:authorize>
<c:out value="${isAuthenticated}"/>
和这个
<sec:authorize access="hasAnyRole('ROLE_ADMIN')">
<a href="delete/${file.id}">Delete</a>
</sec:authorize>
方法三、 还是查询用户
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (!(auth instanceof AnonymousAuthenticationToken)) {
// do something...
}
方法四、 使用标签库
<%@taglib uri="http://www.springframework.org/security/tags" prefix="sec"%>
<sec:authorize access="isAuthenticated()">
<% response.sendRedirect("main"); %>
</sec:authorize>
方法五、 使用注解
需要:<global-method-security secured-annotations="enabled" />
@Secured("ROLE_ADMIN")
@RequestMapping(params = "onlyForAdmins")
public ModelAndView onlyForAdmins() {
....
}
@PreAuthorize("isAuthenticated()")
@RequestMapping(params = "onlyForAuthenticated")
public ModelAndView onlyForAuthenticatedUsers() {
....
}
方法六、 编程
SecurityContextHolder.getContext().getAuthentication() != null &&
SecurityContextHolder.getContext().getAuthentication().isAuthenticated() &&
//when Anonymous Authentication is enabled
!(SecurityContextHolder.getContext().getAuthentication()
instanceof AnonymousAuthenticationToken)
if (SecurityContextHolder.getContext().getAuthentication().isAuthenticated()) {
System.out.println("LOGGED IN");
} else {
System.out.println("NOT LOGGED IN");
}
if (!SecurityContextHolder.getContext().getAuthentication().getName().
equals("anonymousUser")) {
System.out.println("LOGGED IN");
} else {
System.out.println("NOT LOGGED IN");
}
作者:孙亖
链接:http://www.jianshu.com/p/70569b64f9a9
<c:if test="${pageContext.request.userPrincipal.name != null}">
<label>
Hi ${pageContext.request.userPrincipal.name} ! Welcome to our site
</label>
</c:if>
<c:choose>
<c:when test="${pageContext.request.userPrincipal.authenticated}">Show something</c:when>
<c:otherwise>Show something else</c:otherwise>
</c:choose>
方法二、检查角色
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<sec:authorize access="hasAnyAuthority('ROLE_ADMIN', 'ROLE_USER')" var="isAuthenticated">
</sec:authorize>
<c:out value="${isAuthenticated}"/>
和这个
<sec:authorize access="hasAnyRole('ROLE_ADMIN')">
<a href="delete/${file.id}">Delete</a>
</sec:authorize>
方法三、 还是查询用户
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (!(auth instanceof AnonymousAuthenticationToken)) {
// do something...
}
方法四、 使用标签库
<%@taglib uri="http://www.springframework.org/security/tags" prefix="sec"%>
<sec:authorize access="isAuthenticated()">
<% response.sendRedirect("main"); %>
</sec:authorize>
方法五、 使用注解
需要:<global-method-security secured-annotations="enabled" />
@Secured("ROLE_ADMIN")
@RequestMapping(params = "onlyForAdmins")
public ModelAndView onlyForAdmins() {
....
}
@PreAuthorize("isAuthenticated()")
@RequestMapping(params = "onlyForAuthenticated")
public ModelAndView onlyForAuthenticatedUsers() {
....
}
方法六、 编程
SecurityContextHolder.getContext().getAuthentication() != null &&
SecurityContextHolder.getContext().getAuthentication().isAuthenticated() &&
//when Anonymous Authentication is enabled
!(SecurityContextHolder.getContext().getAuthentication()
instanceof AnonymousAuthenticationToken)
if (SecurityContextHolder.getContext().getAuthentication().isAuthenticated()) {
System.out.println("LOGGED IN");
} else {
System.out.println("NOT LOGGED IN");
}
if (!SecurityContextHolder.getContext().getAuthentication().getName().
equals("anonymousUser")) {
System.out.println("LOGGED IN");
} else {
System.out.println("NOT LOGGED IN");
}
作者:孙亖
链接:http://www.jianshu.com/p/70569b64f9a9
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1558方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 2015前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3460info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2226import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 486https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 677public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 603https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 664https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 432https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 5281 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3093微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 611https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1840什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 957本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1355原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 851public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 666在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 931-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 765一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1902介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
在“Spring Security 3多用户登录实现之九 基于持久化存储的自动登录”这一主题中,我们将探讨如何利用Spring Security来实现多用户登录系统,并通过持久化存储来支持用户的自动登录功能。在这个过程中,我们会涉及...
首先,SpringSecurity的核心功能包括用户认证、权限授权、会话管理以及防止常见攻击。其中,用户认证涉及验证用户凭据,如用户名和密码,以确定用户的身份。而权限授权则决定了已认证的用户可以访问哪些资源或执行...
- 用户提交登录请求,请求被SpringSecurity的过滤器拦截。 - 认证过滤器(如`UsernamePasswordAuthenticationFilter`)提取用户名和密码,并调用`UserDetailsService`进行验证。 - 验证成功后,创建`...
例如,可以创建一个自定义的访问决策投票器,它查询数据库中的角色和权限关系,以判断用户是否有权限执行操作。 **自定义密码编码器** Spring Security 提供了多种内置的密码编码器,如BCrypt、PBKDF2和SHA-256。...
过滤器链中的第一个关键过滤器是AbstractAuthenticationProcessingFilter,该过滤器会判断请求是否需要进行身份验证。 c. 如果请求需要认证,AbstractAuthenticationProcessingFilter会调用attemptAuthentication...
Spring Security提供了UserDetailsService接口来处理用户信息的检索和验证。开发者可以自定义实现该接口,将用户数据存储在数据库或其他持久化层中。 2. **手机号登录**:为了适应移动互联网的需求,Spring ...
用户授权则发生在身份认证之后,系统根据用户的角色和权限来判断用户能否访问特定资源,只有拥有相应权限的用户才能访问相应的系统资源,否则会被拒绝访问。在用户授权的过程中,系统一般会为不同的用户分配不同的...
- **AuthenticationTrustResolver**:用于判断用户是否以匿名方式登录。 ##### 12. **Remember-Me 功能** - **概念**:提供记住用户登录状态的功能,即使用户关闭浏览器后再次访问也能保持登录状态。 - **基于简单...
你可以自定义实现来处理业务逻辑,判断用户是否有特定的权限。同时,`@PreAuthorize`和`@PostAuthorize`注解可以接受SpEL(Spring Expression Language)表达式,允许在运行时动态检查权限。 9. **Remember Me功能*...
Spring Security 使用访问决策管理器(Access Decision Manager)和访问决策投票器(Access Decision Voter)来判断用户是否有足够的权限。 3. **过滤器链(Filter Chain)**:Spring Security 的核心是过滤器链,...
6. `boolean isEnabled()`:判断用户是否启用。 7. `Collection<? extends GrantedAuthority> getAuthorities()`:返回用户具有的权限或角色。 `UserDetailsService`是Spring Security提供用于获取`UserDetails`...
- **Spring Security 对一个请求的认证过程**:当请求到达时,Spring Security 会通过 Filter Security Interceptor 检查请求是否需要认证。如果需要,它会将请求传递给 AuthenticationManager 进行认证。 - **用户...
- `spring-security-openid` 文件可能包含了一个OpenID身份验证的示例,这允许用户使用第三方服务(如Google或Yahoo)进行身份验证,增强了用户体验。 5. **X.509证书认证**: - `spring-security-x509` 演示了...
- 接着调用 `AccessDecisionManager` 进行权限决策,该组件会根据配置的策略(如一票否决、一票通过等)判断用户是否有足够的权限访问资源。 - 如果权限不足,则显示无权限访问的页面;如果权限足够,则允许访问...
认证是判断用户身份是否合法的过程,用户访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问,不合法则拒绝访问。常见的用户身份认证方式有用户名密码登录、二维码登录、手机短信登录、指纹认证等方式...
`PermissionEvaluator`用于判断用户是否有权限执行某个操作,而`AclService`是与ACL相关的操作接口,如读取、创建、更新和删除ACL信息。在Spring Security 3.0.4中,可以通过实现`PermissionEvaluator`接口来自定义...
在本项目中,JWT用于生成和验证用户的访问令牌,以此来判断用户是否已登录并具有相应的权限。 **4. 整合SpringBoot、SpringSecurity和JWT** 整合这三个组件的过程主要包括以下几个步骤: - **配置SpringBoot**: ...
Spring Security是Java领域中一个强大的安全框架,用于处理应用程序的安全性问题,如用户认证和授权。在"spring security权限管理"这个主题中,我们将深入探讨如何利用Spring Security来实现复杂而灵活的权限控制。 ...