forked from Exrick/xmall
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
38 changed files
with
3,538 additions
and
1,671 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -24,4 +24,5 @@ | |
-aux 显示所有状态 | ||
|
||
- 终止进程 `kill -9 [PID]` | ||
- Tomcat查看日志 `cd logs tail -f catalina.out` | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
51 changes: 51 additions & 0 deletions
51
xmall-manager-web/src/main/java/cn/exrick/manager/shiro/FilterUtil.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
package cn.exrick.manager.shiro; | ||
|
||
import com.google.gson.Gson; | ||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
|
||
import javax.servlet.ServletRequest; | ||
import javax.servlet.ServletResponse; | ||
import javax.servlet.http.HttpServletRequest; | ||
import java.io.PrintWriter; | ||
import java.util.Map; | ||
|
||
public class FilterUtil { | ||
|
||
private static final Logger log= LoggerFactory.getLogger(FilterUtil.class); | ||
|
||
/** | ||
* 是否是Ajax请求 | ||
* @param request | ||
* @return | ||
*/ | ||
public static boolean isAjax(ServletRequest request){ | ||
String header = ((HttpServletRequest) request).getHeader("X-Requested-With"); | ||
if("XMLHttpRequest".equalsIgnoreCase(header)){ | ||
return true; | ||
} | ||
return false; | ||
} | ||
|
||
/** | ||
* 使用response输出JSON | ||
* @param response | ||
* @param resultMap | ||
*/ | ||
public static void out(ServletResponse response, Map<String, Object> resultMap){ | ||
PrintWriter out = null; | ||
try { | ||
response.setCharacterEncoding("UTF-8"); | ||
response.setContentType("application/json"); | ||
out = response.getWriter(); | ||
out.println(new Gson().toJson(resultMap)); | ||
} catch (Exception e) { | ||
log.error(e + "输出JSON出错"); | ||
}finally{ | ||
if(out!=null){ | ||
out.flush(); | ||
out.close(); | ||
} | ||
} | ||
} | ||
} |
61 changes: 61 additions & 0 deletions
61
xmall-manager-web/src/main/java/cn/exrick/manager/shiro/MyPermissionFilter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
package cn.exrick.manager.shiro; | ||
|
||
import org.apache.shiro.subject.Subject; | ||
import org.apache.shiro.web.filter.authz.AuthorizationFilter; | ||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
|
||
import javax.servlet.ServletRequest; | ||
import javax.servlet.ServletResponse; | ||
import java.util.HashMap; | ||
import java.util.Map; | ||
|
||
public class MyPermissionFilter extends AuthorizationFilter { | ||
|
||
private static final Logger log= LoggerFactory.getLogger(MyPermissionFilter.class); | ||
|
||
@Override | ||
protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object o) throws Exception { | ||
|
||
Subject subject = this.getSubject(request, response); | ||
String[] perms = (String[]) ((String[]) o); | ||
boolean isPermitted = true; | ||
|
||
if (subject.getPrincipal() == null) { | ||
if(FilterUtil.isAjax(request)){ | ||
log.info("未登录或登录时间过长,是ajax!"); | ||
Map<String, Object> resultMap = new HashMap<String, Object>(); | ||
resultMap.put("success", false); | ||
resultMap.put("message", "您还未登录或登录时间过长,请重新登录!"); | ||
FilterUtil.out(response, resultMap); | ||
}else{ | ||
log.info("未登录或登录时间过长,不是ajax!"); | ||
this.saveRequestAndRedirectToLogin(request, response); | ||
} | ||
//isPermitted = false; | ||
} else { | ||
if (perms != null && perms.length > 0) { | ||
if (perms.length == 1) { | ||
if (!subject.isPermitted(perms[0])) { | ||
isPermitted = false; | ||
} | ||
} else if (!subject.isPermittedAll(perms)) { | ||
isPermitted = false; | ||
} | ||
} | ||
if (!isPermitted) { | ||
if (FilterUtil.isAjax(request)) { | ||
log.info("没有该权限,并且是Ajax请求"); | ||
Map<String, Object> resultMap = new HashMap<String, Object>(); | ||
resultMap.put("success", false); | ||
resultMap.put("message", "抱歉,您没有该权限!看就看,你点它干什么..."); | ||
FilterUtil.out(response, resultMap); | ||
} else { | ||
return isPermitted; | ||
} | ||
} | ||
} | ||
return isPermitted; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.