是否可以在 OAuth 中为 Spring Security 自定义 /oauth/user/authorize 路径?
该路径在 org.springframework.security.oauth2.provider.verification.VerificationCodeFilter 类中配置,但我找不到定义自定义过滤器或以其他方式更改此路径的方法。
我正在为 Spring Security 使用 OAuth2 协议和 OAuth 1.0.0.M3 版本。
是否可以在 OAuth 中为 Spring Security 自定义 /oauth/user/authorize 路径?
该路径在 org.springframework.security.oauth2.provider.verification.VerificationCodeFilter 类中配置,但我找不到定义自定义过滤器或以其他方式更改此路径的方法。
我正在为 Spring Security 使用 OAuth2 协议和 OAuth 1.0.0.M3 版本。
您必须使用众所周知的 hack 来自定义未在命名空间配置中公开的 bean 属性 - BeanPostProcessor:
@Component
public class VerificationCodeFilterBeanPostProcessor implements BeanPostProcessor {
private final String filterProcessesUrl = "/your/path/here";
@Override
public final Object postProcessAfterInitialization(final Object bean, final String beanName) {
return bean;
}
@Override
public final Object postProcessBeforeInitialization(final Object bean, final String beanName) {
if (bean instanceof VerificationCodeFilter) {
final VerificationCodeFilter filter = (VerificationCodeFilter) bean;
filter.setFilterProcessesUrl(filterProcessesUrl);
}
return bean;
}
}