我需要创建一个新类,该类实现“ AuthenticationEntryPoint”,如下所示:
public class AuthExceptionEntryPoint implements AuthenticationEntryPoint{ @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException arg2) throws IOException, ServletException { final Map<String, Object> mapBodyException = new HashMap<>() ; mapBodyException.put("error" , "Error from AuthenticationEntryPoint") ; mapBodyException.put("message" , "Message from AuthenticationEntryPoint") ; mapBodyException.put("exception", "My stack trace exception") ; mapBodyException.put("path" , request.getServletPath()) ; mapBodyException.put("timestamp", (new Date()).getTime()) ; response.setContentType("application/json") ; response.setStatus(HttpServletResponse.SC_UNAUTHORIZED) ; final ObjectMapper mapper = new ObjectMapper() ; mapper.writevalue(response.getOutputStream(), mapBodyException) ; }}
并将其添加到我的ResourceServerConfigurerAdapter实现中:
@Configuration@EnableResourceServerpublic class ResourceServerConfiguration extends ResourceServerConfigurerAdapter{ @Override public void configure(HttpSecurity http) throws Exception { http.exceptionHandling().authenticationEntryPoint(new AuthExceptionEntryPoint()) ; }}
您可以找到我的GitHub项目,该项目实现了您所需的一切:
https://github.com/pakkk/custom-spring-
security
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)