根据这个问题,这是登录失败的结果。AuthenticationToken(在本例中是UsernamePasswordAuthenticationToken)被AuthenticationManager拒绝。我不知道它为什么要做这样的事。默认UserDetails对象的身份验证似乎工作得很好。有人能帮我解决这个问题吗?
关于已实现类的一些细节(如上所述)。由于原因,这里遗漏了一些代码。
CustomUserDetails
public class CustomUserDetails extends User {
private final Integer custom;
public CustomUserDetails (...default params..., Integer custom) {
super(...default params...);
this.custom = custom;
}
}
CustomUserDetailsService
@Service
public class CustomUserDetailsService implements UserDetailsService {
@Override
public CustomUserDetails loadUserByUsername(String username) throw UsernameNotFoundException {
return new CustomUserDetails(...default params..., 12345);
}
}
@Autowired
private CustomUserDetails userDetails;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetails);
}
@RequestMapping(value = "/user", method = RequestMethod.GET)
@ResponseBody
public Principal getDetails(Principal user) {
return user;
}
提前谢了。
通常,您需要注释@authenticationPrincipal
,但我建议您构建自己的注释,如下所示:
/**
* Our own {@link AuthenticationPrincipal} annotation as suggested by
* http://docs.spring.io/spring-security/site/docs/3.2.x/reference/htmlsingle/#mvc-authentication-principal
*
*/
@Target({ElementType.PARAMETER, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@AuthenticationPrincipal
public @interface CurrentUser {}
然后您可以通过以下方式拥有这个主体
:
@RequestMapping(..)
public Principal test(@CurrentUser Principal principal){..}
但是,您应该有自己的主体Impl,或者更确切地说,扩展现有的Impl。类似于这样:
public MyPrincipal extends org.springframework.security.core.userdetails.User {..}
问题内容: 我有以下简单的看法。为什么会导致此错误? 问题答案: 因为视图必须 返回 ,而不仅仅是调用它。将最后一行更改为
我有一个线程池为10的executor服务,我希望得到10条打印输出语句,它们之间的间隔为3秒,但我只收到一条打印输出语句。我传递了10作为参数,所以我希望运行10个线程。如何检索未来的10个对象? 我得到的输出是: 线程执行前 结果:123 ArrayList中的期货:123
data String - PEM编码数据 issuer CertificatePrincipal - 发行人主体 issuerName String - 发行商的公用名 issuerCert证书 - 颁发者证书(如果不是自签名) subject CertificatePrincipal - 主题主体 subjectName String - 主题公共名 serialNumber String -
我使用的是Spring版本4(Spring data),我想将Object作为JSON返回,我想知道以下代码即使不使用xmlRootElement注释用户类也能工作: 任何机构都可以解释吗?当我需要注释要返回为JSON的对象类时,响应体/响应实体是否自己完成工作?
我使用mysql存储过程来检索对象列表。这可能吗? 我在看这篇文章 问题: > 如何使用结果集检索select语句中的对象列表? 如何将结果集映射到对象列表? CREATE DEFINER=@PROCEDURE(ININT,OUTINT,OUTINT,OUTVARCHAR(50),OUTVARCHAR(50),OUTFLOAT 内部连接(从rate中选择aid,r.rate,re.country_
我实现了一个函数,希望返回保存在某个url下的对象。在下面的代码中,第一个“console.log(result);”从firebase位置返回正确的对象。第二个返回未定义。有人能解释一下为什么以及如何修复它吗?