我有一个问题,从REST控制器得到一个正确的响应,这是用来发送用户详细信息回来。使用Spring Boot 1.5.10。以下是设置:
OAuth服务器使用WebSecurityConfigurerAdapter(订单2)、ResourceServerConfigurerAdapter(保护OAuth以外的api)、AuthorizationServerConfigurerAdapter(OAuth配置)和GlobalAuthenticationConfigurerAdapter(ldap vs database auth)。
我有一个资源/api/v1/me,用于在OAuth服务器和微服务中返回主体/身份验证对象。微服务的行为是正确的,并返回OAuth2Authentication,如果存在适当的承载令牌,则返回401(令牌可以从OAuth服务器获得)。
另一方面,OAuth服务器给了我一些问题。只有当我首先请求令牌(建立一个JSession)时,它才返回/me响应,如果没有,则将我转发到登录页面。(我正在使用authorization_code grant和Thymeleaf)。在本例中,我得到UsernamePasswordAuthenticationToken。
是否可以将服务器配置为使用承载进行身份验证/me并返回OAuth2Authentication或401,而不是在OAuth服务器上的Java会话,我只需要通过用户名auth获得令牌?
谢谢
哦,伙计,在我发了我的问题后,经过一天的搜索,我发现了一个线索(在这里)。关键在于http的配置方式,在此之前,我将antMatchers与permitAll一起包含在不想进行身份验证的内容中,而实际上我需要进行身份验证。requestMatchers().antMatchers只包含我感兴趣的资源+“/login”,“/oauth/authorize”在web适配器中。资源适配器应该拾取其余部分。