目前,我在使用SAMLAUthenticationProvider时会观察到以下行为。在“authenticate”方法中,有这一行: ExpiringAuthenticationToken result = .... //在此处初始化此对象 result.setDetails(为userDetails); 我在这里面临的问题是,如果我在传入的Authentication对象中设置了“details”对象,那么该信息不会传递回我的应用程序。但是其他身份验证提供程序(例如abstractldapprovider,abstractuserdetialsauthenticationprovider)的情况并非如此。在这些提供程序中,createsuccessfulauthentication()会将其他“详细信息”信息从父身份验证对象保留/复制到新的身份验证对象。
是否有办法通过SAMLAuthenticationProvider实现相同的功能。目前,我可以看到“覆盖”整个身份验证方法并为所有saml处理调用super.authenticate,只需更改setDetails行即可实现此目的。
如果有更好的解决方案,请告诉我。