|
@@ -1,5 +1,6 @@
|
|
|
package beilv.framework.shiro.web.filter.wxMiniAppAccessControlFilter;
|
|
|
|
|
|
+import beilv.common.utils.StringUtils;
|
|
|
import beilv.common.utils.rsa.RsaUtil;
|
|
|
import beilv.system.domain.SysMember;
|
|
|
import beilv.system.mapper.SysMemberMapper;
|
|
@@ -14,6 +15,9 @@ import javax.servlet.ServletResponse;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
+import static beilv.common.enums.ErrorCodeConstants.USER_NOT_EXISTS;
|
|
|
+import static beilv.common.utils.ExceptionUtil.exception;
|
|
|
+
|
|
|
@Slf4j
|
|
|
@Component
|
|
|
public class WxMiniAppAccessControlFilter extends AccessControlFilter {
|
|
@@ -32,23 +36,36 @@ public class WxMiniAppAccessControlFilter extends AccessControlFilter {
|
|
|
// 这里可以添加你的自定义验证逻辑
|
|
|
String token = httpRequest.getHeader("accessToken");
|
|
|
// 验证 token,返回 true 表示允许访问
|
|
|
- return token != null && isValidToken(token); // 默认不允许访问
|
|
|
+ if (null == token || !isValidToken(token)) {
|
|
|
+// throw new Exception("123123123");// 默认不允许访问
|
|
|
+ response.getWriter().write("{\"message\": \"false!\"}");
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
- protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
|
|
|
+ protected boolean onAccessDenied(ServletRequest request, ServletResponse response) {
|
|
|
HttpServletResponse httpResponse = (HttpServletResponse) response;
|
|
|
// 设置未授权的响应状态
|
|
|
httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
return false; // 拒绝访问
|
|
|
}
|
|
|
|
|
|
- private boolean isValidToken(String token) throws Exception {
|
|
|
+ private boolean isValidToken(String token){
|
|
|
// 在这里实现你的 token 验证逻辑
|
|
|
- String str = RsaUtil.decrypt(token, privateKey);
|
|
|
- //根据userId从数据库中查询用户信息,判断用户是否存在,如果不存在,则返回false,表示拒绝访问;如果存在,则返回true,表示放行访问
|
|
|
- SysMember sysMember = sysMemberMapper.selectSysMemberById(Long.parseLong(str));
|
|
|
- return ObjectUtils.isNotEmpty(sysMember);
|
|
|
+ String str;
|
|
|
+ try {
|
|
|
+ str = RsaUtil.decrypt(token, privateKey);
|
|
|
+ //根据userId从数据库中查询用户信息,判断用户是否存在,如果不存在,则返回false,表示拒绝访问;如果存在,则返回true,表示放行访问
|
|
|
+ SysMember sysMember = sysMemberMapper.selectSysMemberById(Long.parseLong(str));
|
|
|
+ return ObjectUtils.isNotEmpty(sysMember);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|