- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 spring-security-oauth-2.0.0-M2 构建的应用程序,现在我正在尝试将其升级到 2.0.0.RC1。示例配置已发生显着变化,现在使用 java 配置。
我已将配置转换为 java 配置,但遇到了此错误。
Apr 21, 2014 5:32:43 PM org.apache.catalina.core.ApplicationContext log INFO: Initializing Spring root WebApplicationContext 17:32:44.703 [localhost-startStop-1] ERROR o.s.web.context.ContextLoader - Context initialization failed java.lang.NullPointerException: null at org.springframework.security.oauth2.config.annotat ion.web.configuration.AuthorizationServerEndpoints Configuration$TokenStoreRegistrar.postProcessBeanF actory(AuthorizationServerEndpointsConfiguration.j ava:179) ~[spring-security-oauth2-2.0.0.RC1.jar:na] at org.springframework.context.support.AbstractApplic ationContext.invokeBeanFactoryPostProcessors(Abstr actApplicationContext.java:694) ~[spring-context-3.2.8.RELEASE.jar:3.2.8.RELEASE] at org.springframework.context.support.AbstractApplic ationContext.invokeBeanFactoryPostProcessors(Abstr actApplicationContext.java:684) ~[spring-context-3.2.8.RELEASE.jar:3.2.8.RELEASE] at org.springframework.context.support.AbstractApplic ationContext.refresh(AbstractApplicationContext.ja va:461) ~[spring-context-3.2.8.RELEASE.jar:3.2.8.RELEASE] at org.springframework.web.context.ContextLoader.conf igureAndRefreshWebApplicationContext(ContextLoader .java:410) ~[spring-web-3.2.8.RELEASE.jar:3.2.8.RELEASE] at org.springframework.web.context.ContextLoader.init WebApplicationContext(ContextLoader.java:306) ~[spring-web-3.2.8.RELEASE.jar:3.2.8.RELEASE] at org.springframework.web.context.ContextLoaderListe ner.contextInitialized(ContextLoaderListener.java: 112) [spring-web-3.2.8.RELEASE.jar:3.2.8.RELEASE] at org.apache.catalina.core.StandardContext.listenerS tart(StandardContext.java:4937) [tomcat-embed-core-7.0.47.jar:7.0.47] at org.apache.catalina.core.StandardContext.startInte rnal(StandardContext.java:5434) [tomcat-embed-core-7.0.47.jar:7.0.47] at org.apache.catalina.util.LifecycleBase.start(Lifec ycleBase.java:150) [tomcat-embed-core-7.0.47.jar:7.0.47] at org.apache.catalina.core.ContainerBase$StartChild. call(ContainerBase.java:1559) [tomcat-embed-core-7.0.47.jar:7.0.47] at org.apache.catalina.core.ContainerBase$StartChild. call(ContainerBase.java:1549) [tomcat-embed-core-7.0.47.jar:7.0.47] at java.util.concurrent.FutureTask.run(FutureTask.jav a:262) [na:1.7.0_45] at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1145) [na:1.7.0_45] at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:615) [na:1.7.0_45] at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
我的配置与示例 sprklr 配置基本相似
@Configuration
@EnableAuthorizationServer
protected static class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {
@Autowired
private TokenStore tokenStore;
@Autowired
private UserApprovalHandler userApprovalHandler;
@Autowired
@Qualifier("authenticationManagerBean")
private AuthenticationManager authenticationManager;
@Bean
public TokenStore tokenStore() {
return new InMemoryTokenStore();
}
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients.inMemory().withClient("some-client")
.authorizedGrantTypes("authorization_code", "password", "client_credentials")
.authorities("ROLE_USER", "ROLE_CLIENT")
.scopes("play", "trust")
.secret("xyz")
.accessTokenValiditySeconds(6000)
.and()
.withClient("some-other-client")
.authorizedGrantTypes("implicit")
.authorities("ROLE_USER", "ROLE_CLIENT", "ROLE_TRUSTED_CLIENT")
.scopes("play", "trust")
.autoApprove(true)
.accessTokenValiditySeconds(6000);
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
if (tokenStore == null) {
throw new IllegalStateException("Token store is null");
}
if (userApprovalHandler == null) {
thrownew IllegalStateException ("User approval handler is null");
} if (authenticationManager == null) {
throw new IllegalStateException("Auth manager is null");
}
endpoints
.userApprovalHandler(userApprovalHandler)
.authenticationManager(authenticationManager)
.tokenStore(tokenStore);
}
@Override
public void configure(AuthorizationServerSecurityConfigurer oauthServer) throws Exception {
oauthServer.realm("myapp/client");
}
}
正如您所看到的,我正在检查configure(AuthorizationServerEndpointsConfigurer端点)方法上的空值,一切看起来都很好,但不知何故,AuthorizationServerEndpointsConfiguration$TokenReg istrar中的注册表从未设置。
(取自spring security oauth代码)
@Configuration
protected static class TokenStoreRegistrar implements BeanDefinitionRegistryPostProcessor {
private BeanDefinitionRegistry registry;
// Use a BeanFactoryPostProcessor to register a bean definition for a TokenStore in a safe way (without
// pre-empting a bean specified by the user)
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
if (!registry.containsBeanDefinition(TOKEN_STORE_BEAN_NAME)) {
registry.registerBeanDefinition(TOKEN_STORE_BEAN_NAME, new RootBeanDefinition(InMemoryTokenStore.class));
}
}
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
this.registry = registry;
}
}
最佳答案
这似乎将在下一个版本中修复,因为它使用上一个快照版本(2.0.0.BUILD-SNAPSHOT <2014-04-19>)。
关于java - NPE AuthorizationServerEndpointsConfiguration$TokenRegistrar postProcessBeanFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23207401/
我正在使用我的笔记本电脑(win10),我可以毫无问题地启动我的 Grails 应用程序。 我试图也能在我的桌面(win10)上工作,但 Grails 无法启动我的应用程序。 我安装了相同的 Java
我有一个使用 spring-security-oauth-2.0.0-M2 构建的应用程序,现在我正在尝试将其升级到 2.0.0.RC1。示例配置已发生显着变化,现在使用 java 配置。 我已将配置
Spring constructor injection of SLF4J logger - how to get injection target class? 我想在 Spring boot 中实
我是一名优秀的程序员,十分优秀!