|  |  |  | 
|---|
|  |  |  | package com.genersoft.iot.vmp.conf.security; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson2.JSONObject; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.conf.security.dto.JwtUser; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; | 
|---|
|  |  |  | import org.apache.poi.hssf.eventmodel.ERFListener; | 
|---|
|  |  |  | import org.slf4j.Logger; | 
|---|
|  |  |  | import org.slf4j.LoggerFactory; | 
|---|
|  |  |  | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; | 
|---|
|  |  |  | import org.springframework.security.core.AuthenticationException; | 
|---|
|  |  |  | import org.springframework.security.core.context.SecurityContextHolder; | 
|---|
|  |  |  | import org.springframework.security.web.AuthenticationEntryPoint; | 
|---|
|  |  |  | import org.springframework.stereotype.Component; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * @author lin | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Component | 
|---|
|  |  |  | public class AnonymousAuthenticationEntryPoint implements AuthenticationEntryPoint { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final static Logger logger = LoggerFactory.getLogger(DefaultUserDetailsServiceImpl.class); | 
|---|
|  |  |  | public class    AnonymousAuthenticationEntryPoint implements AuthenticationEntryPoint { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) { | 
|---|
|  |  |  | // 允许跨域 | 
|---|
|  |  |  | response.setHeader("Access-Control-Allow-Origin", "*"); | 
|---|
|  |  |  | // 允许自定义请求头token(允许head跨域) | 
|---|
|  |  |  | response.setHeader("Access-Control-Allow-Headers", "token, Accept, Origin, X-Requested-With, Content-Type, Last-Modified"); | 
|---|
|  |  |  | response.setHeader("Content-type", "application/json;charset=UTF-8"); | 
|---|
|  |  |  | String jwt = request.getHeader(JwtUtils.getHeader()); | 
|---|
|  |  |  | JwtUser jwtUser = JwtUtils.verifyToken(jwt); | 
|---|
|  |  |  | String username = jwtUser.getUserName(); | 
|---|
|  |  |  | UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, jwtUser.getPassword() ); | 
|---|
|  |  |  | SecurityContextHolder.getContext().setAuthentication(token); | 
|---|
|  |  |  | JSONObject jsonObject = new JSONObject(); | 
|---|
|  |  |  | jsonObject.put("code", ErrorCode.ERROR401.getCode()); | 
|---|
|  |  |  | jsonObject.put("msg", ErrorCode.ERROR401.getMsg()); | 
|---|