- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
用户注册成功后,我尝试将用户重定向到登录后页面并尝试从 SecurityContextHolder.getContext().getAuthentication(); 获取 Activity 用户;返回 null。
这是我在用户成功注册时设置上下文的方式
UsernamePasswordAuthenticationToken authenticatedUser = new UsernamePasswordAuthenticationToken(userDetails.getUsername(), userDetails.getPassword(), userDetails.getAuthorities());
authenticatedUser.setDetails(userDetails);
if(authenticatedUser.isAuthenticated()) {
SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
}
然后我使用response.sendRedirect(url)将用户重定向到x页面;
在 Controller 方法中,我尝试将当前用户设置为
@RequestMapping("/<pattern>")
public @ResponseBody <method_name>(HttpServletRequest req,HttpServletResponse resp){
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if(auth==null){
System.out.println("this is null");
}
else{
// do something
}
}
我在控制台中看到的文本为“this is null”。
如何在整个用户期间从 SecurityContext() 保留当前用户/主体,直到用户注销。
最佳答案
我找到了解决方案。
问题出在该特定 URI 组的标记的模式属性上。
之前是/path/* 并且失败了。我将其更改为/path/** 并且成功了。
如果有人能解释这两种模式匹配(/* 和/**)之间的关系,将会很有帮助。
关于java - Spring Security : SecurityContextHolder. getContext().getAuthentication() 在用户注册用户并重定向到登录后页面后返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30871615/
我们将应用程序从 Spring & Hibernate 3.x 升级到 4.x。问题是 AuthenticationException.getAuthentication() 现在已被弃用。任何人都可
我在我的 Spring Boot 项目中处理安全层时遇到了以下问题: SecurityContextHolder.getContext().getAuthentication() 此代码返回: 匿名用
当我尝试模拟时 SecurityContextHolder.getContext().getAuthentication().getCredentials() 要获得 UserDetails 的 Ma
我正在尝试从 Spring Boot + AngularJS 应用程序返回当前登录的用户,但是 SecurityContextHolder.getContext().getAuthentication
我正在实现 MyUsernamePasswordAuthenticationFilter 扩展默认过滤器。 我没有在其中做任何事情。我只是想在这里获取请求以使其变得简单。 public class M
我在我的项目中使用 Spring 3,现在升级到 Spring 4.0.3.RELEASE。现在在使用 AuthenticationException.getAuthentication() 时,它说
我想使用以下代码从 spring Security 中手动绕过用户: User localeUser = new User(); UsernamePasswordAuthenticationToken
我创建了一个简单的 spring web mvc 应用程序,但有一个问题。身份验证后,我尝试获取身份验证对象,但由于某种原因,它的凭据为空。 在这个项目中,我有一个自定义的 Authenticatio
用户注册成功后,我尝试将用户重定向到登录后页面并尝试从 SecurityContextHolder.getContext().getAuthentication(); 获取 Activity 用户;返
我已经实现了一个映射到特定 URL "/partner/login" 的自定义安全机制,我在其中使用我自己的子类 AbstractAuthenticationProcessingFilter 生成子类
我已尝试实现此 question. 中提供的解决方案 但是,它们都不适合我。在我的抽象基 Controller 中,我有以下方法(我也尝试在 helper 类中使用静态方法,但同样的问题): publ
我有一个典型的 Spring MVC 在 Tomcat 上运行。将系统切换为在 HTTPS 上运行(在纯 HTTP 下一切正常)后,登录停止工作。原因是Spring的SecurityContextHo
我是一名优秀的程序员,十分优秀!