栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring Boot OAuth:不支持的授权类型

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot OAuth:不支持的授权类型

如果您使用的是 grant_type =“ password” ,则必须:

在自己的

WebSecurityConfigurerAdapter
类中创建以下bean

@Override@Beanpublic AuthenticationManager authenticationManagerBean() throws Exception {   return super.authenticationManagerBean();}

注入

AuthorizationServerConfigurerAdapter
课堂

@Autowiredprivate AuthenticationManager authenticationManager;

configure(AuthorizationServerEndpointsConfigurer endpoints)
方法中使用

@Overridepublic void configure(AuthorizationServerEndpointsConfigurer endpoints) {   endpoints.authenticationManager(authenticationManager);}

完整示例:

@Configurationpublic class WebSecurityConfig extends WebSecurityConfigurerAdapter {    @Override    @Bean    public AuthenticationManager authenticationManagerBean() throws Exception {        return super.authenticationManagerBean();    }    @Bean    @Override    protected UserDetailsService userDetailsService(){        InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();        manager.createUser(User.withUsername("a").password("123456").authorities("USER").build());        return manager;    }}@Configuration@EnableAuthorizationServerpublic class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {    private AuthenticationManager authenticationManager;    @Autowired    public AuthorizationServerConfig(AuthenticationManager authenticationManager) {        this.authenticationManager = authenticationManager;    }    @Override    public void configure(AuthorizationServerEndpointsConfigurer endpoints) {        endpoints.authenticationManager(authenticationManager);    }    @Override    public void configure(AuthorizationServerSecurityConfigurer security) {         security.tokenKeyAccess("permitAll()")    .checkTokenAccess("isAuthenticated()")       .allowFormAuthenticationForClients();    }    @Override        public void configure(ClientDetailsServiceConfigurer clients) throws Exception {        clients.inMemory()     .withClient("CLIEN_ID").secret("CLIENT_SECRET")     .authorizedGrantTypes("password", "refresh_token")     .authorities("CLIENT")     .scopes("read");    }}

测试:

curl -i -X POST -d "username=a&password=123456&grant_type=password&client_id=CLIENT_ID&client_secret=CLIENT_SECRET" http://localhost:8080/oauth/token


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/615612.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号