Skip to content

Commit 5cc8fb5

Browse files
author
Chris Dutra
committed
Adds logout to password grant sample app
1 parent 0987769 commit 5cc8fb5

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

Diff for: authcode/src/main/java/org/cloudfoundry/identity/samples/authcode/Application.java

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.springframework.context.annotation.Bean;
1616
import org.springframework.context.annotation.ComponentScan;
1717
import org.springframework.context.annotation.Configuration;
18+
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
1819
import org.springframework.security.core.Authentication;
1920
import org.springframework.security.core.context.SecurityContextHolder;
2021
import org.springframework.security.oauth2.client.OAuth2RestTemplate;

Diff for: password/src/main/java/org/cloudfoundry/identity/samples/password/Application.java

+11-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package org.cloudfoundry.identity.samples.password;
22

33
import java.io.IOException;
4-
import java.util.Arrays;
54
import java.util.Collections;
65
import java.util.Map;
76

8-
import com.fasterxml.jackson.core.JsonParseException;
97
import org.apache.commons.codec.binary.Base64;
108
import org.cloudfoundry.identity.samples.oauth2.composite.CompositeAccessTokenProvider;
119
import org.springframework.beans.factory.annotation.Autowired;
@@ -18,10 +16,6 @@
1816
import org.springframework.security.oauth2.client.OAuth2RestTemplate;
1917
import org.springframework.security.oauth2.client.token.AccessTokenProvider;
2018
import org.springframework.security.oauth2.client.token.AccessTokenProviderChain;
21-
import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsAccessTokenProvider;
22-
import org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeAccessTokenProvider;
23-
import org.springframework.security.oauth2.client.token.grant.implicit.ImplicitAccessTokenProvider;
24-
import org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordAccessTokenProvider;
2519
import org.springframework.stereotype.Controller;
2620
import org.springframework.ui.Model;
2721
import org.springframework.web.bind.annotation.RequestMapping;
@@ -38,6 +32,10 @@
3832
import org.springframework.web.bind.annotation.RequestParam;
3933

4034
import javax.annotation.PostConstruct;
35+
import javax.servlet.http.HttpServletRequest;
36+
import javax.servlet.http.HttpServletResponse;
37+
38+
import static org.springframework.web.bind.annotation.RequestMethod.GET;
4139

4240
@Configuration
4341
@EnableAutoConfiguration
@@ -133,4 +131,11 @@ ResourceOwnerPasswordResourceDetails passwordGrantResourceDetails() {
133131
public OAuth2RestTemplate passwordGrantRestTemplate() {
134132
return new OAuth2RestTemplate(passwordGrantResourceDetails());
135133
}
134+
135+
136+
@RequestMapping(value="/logout", method = GET)
137+
public String logout(HttpServletRequest request, HttpServletResponse response) throws IOException {
138+
this.oAuth2RestTemplate.getOAuth2ClientContext().setAccessToken(null);
139+
return "redirect:/password";
140+
}
136141
}

Diff for: password/src/main/resources/templates/password_result.html

+7
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,12 @@ <h1>Password Grant Sample</h1>
2020
<p>This is the ID Token:</p>
2121
<pre th:text="${id_token}"></pre>
2222

23+
<h2>What do you want to do?</h2>
24+
<ul>
25+
<li>
26+
<a href="/logout">Log out</a>
27+
</li>
28+
</ul>
29+
2330
</body>
2431
</html>

0 commit comments

Comments
 (0)