package cc.mrbird.febs.auth.controller;
|
|
import cc.mrbird.febs.auth.manager.UserManager;
|
import cc.mrbird.febs.auth.service.ValidateCodeService;
|
import cc.mrbird.febs.common.core.entity.FebsResponse;
|
import cc.mrbird.febs.common.core.entity.constant.StringConstant;
|
import cc.mrbird.febs.common.core.exception.ValidateCodeException;
|
import lombok.RequiredArgsConstructor;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.security.oauth2.provider.token.ConsumerTokenServices;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.security.Principal;
|
|
/**
|
* @author MrBird
|
*/
|
@Controller
|
@RequiredArgsConstructor
|
public class SecurityController {
|
|
private final ValidateCodeService validateCodeService;
|
private final UserManager userManager;
|
private final ConsumerTokenServices consumerTokenServices;
|
|
@ResponseBody
|
@GetMapping("user")
|
public Principal currentUser(Principal principal) {
|
return principal;
|
}
|
|
@ResponseBody
|
@GetMapping("captcha")
|
public void captcha(HttpServletRequest request, HttpServletResponse response) throws IOException, ValidateCodeException {
|
validateCodeService.create(request, response);
|
}
|
|
@RequestMapping("login")
|
public String login() {
|
return "login";
|
}
|
|
@ResponseBody
|
@DeleteMapping("signout")
|
public FebsResponse signout(HttpServletRequest request, @RequestHeader("Authorization") String token) {
|
token = StringUtils.replace(token, "bearer ", StringConstant.EMPTY);
|
consumerTokenServices.revokeToken(token);
|
return new FebsResponse().message("signout");
|
}
|
}
|