我有一个由SpringSecurity保护的Spring REST-API。
我有不同的方法在该应用程序中进行身份验证。
其中每个都由不同的身份验证提供程序覆盖,该提供程序可以正确分配访问角色。 (工程)
但是,我需要知道使用哪个身份验证提供程序来验证用户,因此我可以将其写入日志,历史记录......
User CUSTOMER/max.pain created a new entry.
当然,用户名并不真正包含该前缀,无论是在db中还是在ldap中。
我考虑过根据所使用的身份验证提供程序添加一个特殊角色,但反复提取该信息很烦人,可能性能不佳,并可能在将来导致问题。 (user.getGrantedAuthorities().findStartingWith("AP_")
)
我也尝试使用org.springframework.security.config.annotation.SecurityConfigurerAdapter.addObjectPostProcessor(ObjectPostProcessor<?>)
,但我无法使用它来使用自定义AuthenticationProvider类包装AuthenticationProvider,因为无论出于何种原因它都需要使用same class。
我是否可以使用inbuild方法来实现该功能,还是必须使用自定义实现/配置?
Prozess步骤: