在Spring应用程序中以编程方式(不使用application.yaml)获取Oauth2.0访问令牌

时间:2018-05-09 07:44:53

标签: spring spring-boot oauth-2.0

我有一个用Spring boot编写的客户端应用程序,用于获取访问令牌。

Application.yaml

security:
  basic:
    enabled: false
  oauth2:
    client:
    clientId: MYID
    clientSecret: MYSECRET
    accessTokenUri: ${env.oauth.oauth-url}/token
    userAuthorizationUri: ${env.oauth.oauth-url}/authorize? 
              login_hint=${env.tenant} 
    use-current-uri: false
    pre-established-redirect-uri: http://localhost:8080/app1/login

MyConfigurer.java

@Configuration
@EnableOAuth2Sso
public class MYConfigurer
    extends WebSecurityConfigurerAdapter{

@Override
public void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests().anyRequest().authenticated();

}

通过从application.yaml读取oauth2配置,每个http请求使用此代码进行身份验证。如果我从浏览器向此应用程序的终点发出请求,它会将我重定向到要求提供电子邮件ID和密码的页面。然后它验证凭据并使用accesstoken返回应用程序。

我的要求是使用java代码以编程方式进行此身份验证,而不是通过浏览器进行重定向,我将以html格式输入emailid和密码。不知何故,我想通过传递我的详细信息并获取访问令牌,使用rest模板调用这些userAuthorizationUri和accessTokenUri。

0 个答案:

没有答案