0

是否可以在 OAuth 中为 Spring Security 自定义 /oauth/user/authorize 路径?

该路径在 org.springframework.security.oauth2.provider.verification.VerificationCodeFilter 类中配置,但我找不到定义自定义过滤器或以其他方式更改此路径的方法。

我正在为 Spring Security 使用 OAuth2 协议和 OAuth 1.0.0.M3 版本。

4

1 回答 1

0

您必须使用众所周知的 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;
    }
}
于 2011-04-20T13:00:09.517 回答