package com.whyc.filter;
|
|
import com.google.gson.Gson;
|
import com.whyc.constant.SuperConstant;
|
import com.whyc.dto.Response;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.shiro.web.filter.authz.RolesAuthorizationFilter;
|
import org.apache.shiro.web.util.WebUtils;
|
import org.springframework.util.StringUtils;
|
|
import javax.servlet.ServletRequest;
|
import javax.servlet.ServletResponse;
|
import java.io.IOException;
|
|
/**
|
* 可以在定制化角色权限被拒绝时的返回,暂不用
|
*/
|
@Deprecated
|
@Slf4j
|
public class JwtRolesFilter extends RolesAuthorizationFilter {
|
/**
|
* 访问拒绝时调用
|
* @param request
|
* @param response
|
* @return
|
*/
|
@Override
|
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws IOException {
|
log.debug("访问被拒绝了");
|
String jwt = WebUtils.toHttp(request).getHeader(SuperConstant.AUTHORIZATION);
|
if(!StringUtils.isEmpty(jwt)){
|
Response myResponse = new Response().set(1,"未登录");
|
response.setCharacterEncoding("UTF-8");
|
response.setContentType("application/json;charset=utf-8");
|
Gson gson = new Gson();
|
response.getWriter().write(gson.toJson(myResponse));
|
return false;
|
}
|
return super.onAccessDenied(request, response);
|
}
|
}
|