Created
October 16, 2018 13:51
-
-
Save gatspy/0193ea16b02ae802a1f1c754f3368e91 to your computer and use it in GitHub Desktop.
Oauth2RestTemplate example - this goes with the spring boot rest oauth example project (https://github.com/royclarkson/spring-rest-service-oauth) but the Greeting class needs to have setters and a default constructor.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package hello; | |
public class Greeting { | |
private long id; | |
private String content; | |
public Greeting(){} | |
public Greeting(long id, String content) { | |
this.id = id; | |
this.content = content; | |
} | |
public long getId() { | |
return id; | |
} | |
public String getContent() { | |
return content; | |
} | |
public void setId(long id) { | |
this.id = id; | |
} | |
public void setContent(String content) { | |
this.content = content; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package hello; | |
import org.junit.Test; | |
import org.junit.runner.RunWith; | |
import org.springframework.beans.factory.annotation.Value; | |
import org.springframework.boot.test.IntegrationTest; | |
import org.springframework.boot.test.SpringApplicationConfiguration; | |
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; | |
import org.springframework.security.oauth2.client.DefaultOAuth2ClientContext; | |
import org.springframework.security.oauth2.client.OAuth2RestTemplate; | |
import org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordResourceDetails; | |
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; | |
import org.springframework.test.context.web.WebAppConfiguration; | |
import static java.lang.String.format; | |
import static java.util.Arrays.asList; | |
@RunWith(SpringJUnit4ClassRunner.class) | |
@SpringApplicationConfiguration(classes = Application.class) | |
@WebAppConfiguration | |
@IntegrationTest("server.port:0") | |
public class RestTemplateTest { | |
@Value("${local.server.port}") | |
protected int port; | |
@Test | |
public void clientAccess() { | |
ResourceOwnerPasswordResourceDetails resourceDetails = new ResourceOwnerPasswordResourceDetails(); | |
resourceDetails.setUsername("roy"); | |
resourceDetails.setPassword("spring"); | |
resourceDetails.setAccessTokenUri(format("http://localhost:%d/oauth/token", port)); | |
resourceDetails.setClientId("clientapp"); | |
resourceDetails.setClientSecret("123456"); | |
resourceDetails.setGrantType("password"); | |
resourceDetails.setScope(asList("read", "write")); | |
DefaultOAuth2ClientContext clientContext = new DefaultOAuth2ClientContext(); | |
OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(resourceDetails, clientContext); | |
restTemplate.setMessageConverters(asList(new MappingJackson2HttpMessageConverter())); | |
final Greeting greeting = restTemplate.getForObject(format("http://localhost:%d/greeting", port), Greeting.class); | |
System.out.println(greeting); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment