2017-01-31 53 views
0

在我的Spring启动应用程序中,我使用google oauth2来让用户通过他们的gmail帐户登录。我已经使用我的帐户详细信息获取并设置了客户端ID,秘密和范围,并对该程序进行了测试。
但是现在我需要在单独的环境中运行它,所以所有的硬编码配置都必须消失。
我添加了客户端ID,seceret和范围在我application.properties文件如下,
我已经在application.properties中设置了oauth2属性,如何在代码中使用它们?

security.oauth2.client.id= 5******-5**bd***a6.apps.googleusercontent.com 
security.oauth2.client.client-secret=m******qb***H 
security.oauth2.client.scope[0]=https://www.googleapis.com/auth/admin.directory.user.readonly 

现在怎么在我的Java类中使用这个属性。为例如

public static String getToken() throws Exception { 

    String clientId = "5******-5**bd***a6.apps.googleusercontent.com"; 
    String clientSecret = "m******qb***H"; 
    String scope = "https://www.googleapis.com/auth/admin.directory.user.readonly "; 

    AuthorizationCodeFlow flow= 
      new AuthorizationCodeFlow.Builder(BearerToken.authorizationHeaderAccessMethod(), 
        new NetHttpTransport(), 
        new JacksonFactory(), 
        new GenericUrl(GoogleOAuthConstants.TOKEN_SERVER_URL), 
        new BasicAuthentication(clientId, clientSecret), 
        clientId, 
        GoogleOAuthConstants.AUTHORIZATION_SERVER_URL) 
        .setScopes(Collections.singleton(scope)).build(); 

我想创建一个配置类,并获得ID,秘密,从属性文件的范围值,然后使用这些在这里。 所有这些都应该使用Spring来完成,而不是通过文件阅读请。

回答

0

您可以使用@Value注释,如下所示读取性能

@Value("${security.oauth2.client.id}") 
private String clientId; 
相关问题