logout -> token revoke
This commit is contained in:
@@ -2,13 +2,30 @@ package io.bluemoon.authorizationserver.controller.sso;
|
|||||||
|
|
||||||
import io.bluemoon.authorizationserver.config.annotation.SocialUser;
|
import io.bluemoon.authorizationserver.config.annotation.SocialUser;
|
||||||
import io.bluemoon.authorizationserver.domain.user.User;
|
import io.bluemoon.authorizationserver.domain.user.User;
|
||||||
|
import org.springframework.security.oauth2.common.OAuth2AccessToken;
|
||||||
|
import org.springframework.security.oauth2.provider.OAuth2Authentication;
|
||||||
|
import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
|
||||||
|
import org.springframework.security.oauth2.provider.token.ConsumerTokenServices;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
import java.security.Principal;
|
import java.security.Principal;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
public class SsoController {
|
public class SsoController {
|
||||||
|
|
||||||
|
private AuthorizationServerTokenServices authorizationServerTokenServices;
|
||||||
|
private ConsumerTokenServices consumerTokenServices;
|
||||||
|
|
||||||
|
public SsoController(AuthorizationServerTokenServices authorizationServerTokenServices,
|
||||||
|
ConsumerTokenServices consumerTokenServices) {
|
||||||
|
this.authorizationServerTokenServices = authorizationServerTokenServices;
|
||||||
|
this.consumerTokenServices = consumerTokenServices;
|
||||||
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/user")
|
@RequestMapping(value = "/user")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Principal user(Principal user) {
|
public Principal user(Principal user) {
|
||||||
@@ -24,6 +41,16 @@ public class SsoController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/revokeToken")
|
||||||
|
public void revokeToken(HttpServletRequest request, HttpServletResponse response, Principal principal) {
|
||||||
|
OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) principal;
|
||||||
|
OAuth2AccessToken accessToken = authorizationServerTokenServices.getAccessToken(oAuth2Authentication);
|
||||||
|
consumerTokenServices.revokeToken(accessToken.getValue());
|
||||||
|
HttpSession httpSession = request.getSession();
|
||||||
|
httpSession.invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user