package com.izouma.awesomeadmin.interceptor; import com.izouma.awesomeadmin.shiro.AppToken; import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Created by xiong on 2017/6/16. */ public class GlobalInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Subject subject = SecurityUtils.getSubject(); if (!subject.isAuthenticated()) { String token = request.getHeader("token"); if (StringUtils.isNotEmpty(token)) { AppToken appToken = new AppToken(token); try { subject.login(appToken); } catch (Exception e) { e.printStackTrace(); } } } response.addHeader("Access-Control-Allow-Origin", request.getHeader("Origin")); response.addHeader("Access-Control-Allow-Methods", "*"); response.addHeader("Access-Control-Max-Age", "100"); response.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); response.addHeader("Access-Control-Allow-Credentials", "true"); return super.preHandle(request, response, handler); } }