相关疑难解决方法(0)

如何获取活动用户的UserDetails

在我的控制器中,当我需要活动(登录)用户时,我正在执行以下操作来获取我的UserDetails实现:

User activeUser = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
log.debug(activeUser.getSomeCustomField());
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我认为Spring可以在这样的情况下让生活更轻松.有没有办法将UserDetails自动装配到控制器或方法?

例如,类似于:

public ModelAndView someRequestHandler(Principal principal) { ... }
Run Code Online (Sandbox Code Playgroud)

但是,而不是得到UsernamePasswordAuthenticationToken,我得到了一个UserDetails

我正在寻找一个优雅的解决方案.有任何想法吗?

java spring spring-mvc spring-security

165
推荐指数
6
解决办法
12万
查看次数

Spring Security - 如果已经登录则重定向

我是Spring的新手:

我不希望经过身份验证的用户访问登录页面.如果用户已经过身份验证,那么处理'/ login'重定向的正确方法是什么?说,如果已经登录,我想重定向到'/ index'.

我在登录时尝试了'isAnonomous()',但它重定向到访问被拒绝的页面.

<security:http auto-config="true" use-expressions="true" ...>
    <form-login login-processing-url="/resources/j_spring_security_check"
                 default-target-url="/index"
                login-page="/login" authentication-failure-url="/login?login_error=t" />
    <logout logout-url="/resources/j_spring_security_logout"  />
   ...
  <security:intercept-url pattern="/login" access="permitAll" />
  <security:intercept-url pattern="/**" access="isAuthenticated()" />
</security:http>
Run Code Online (Sandbox Code Playgroud)

spring spring-security

27
推荐指数
2
解决办法
2万
查看次数

标签 统计

spring ×2

spring-security ×2

java ×1

spring-mvc ×1