Skip to content

Commit 9bdb096

Browse files
committed
Merge remote-tracking branch 'origin/develop'
2 parents 776f4c6 + 48189fd commit 9bdb096

File tree

6 files changed

+85
-82
lines changed

6 files changed

+85
-82
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ metrics | @Timed
4747
---
4848
>
4949
> * develop开发分支
50+
> * cxf test `apache cxf`
5051
> * JdbcTemplate(test spring `jdbctemplate`/test `shiro`)
5152
> * springtask(test spring `task`/`quartz`)
5253
> * velocity(test `velocity` template)

pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
<mybatis.version>3.3.0</mybatis.version>
3434
<slf4j.version>1.7.7</slf4j.version>
3535
<logback.version>1.1.3</logback.version>
36-
<cxf.version>2.5.2</cxf.version>
3736
<mockito.version>1.10.19</mockito.version>
3837
<itextpdf.version>5.5.9</itextpdf.version>
3938
<jsoup.version>1.9.2</jsoup.version>

src/main/java/cn/com/ttblog/ssmbootstrap_table/Constant/ConfigConstant.java renamed to src/main/java/cn/com/ttblog/ssmbootstrap_table/constant/ConfigConstant.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package cn.com.ttblog.ssmbootstrap_table.Constant;
1+
package cn.com.ttblog.ssmbootstrap_table.constant;
22

33
public class ConfigConstant {
44
/**

src/main/java/cn/com/ttblog/ssmbootstrap_table/controller/IndexController.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import org.apache.commons.codec.binary.Base64;
2222
import org.apache.commons.io.FileUtils;
23+
import org.apache.commons.lang3.StringUtils;
2324
import org.joda.time.DateTime;
2425
import org.slf4j.Logger;
2526
import org.slf4j.LoggerFactory;
@@ -85,7 +86,9 @@ public String login(HttpSession session, HttpServletRequest request,
8586
logger.debug("request.getContextPath():{} decode-requri:{} touri:{}",request.getContextPath(),uri,touri);
8687
// /ssmbootstrap_table
8788
// /ssmbootstrap_table/test/form?null
88-
return "redirect:/"+touri;
89+
if(StringUtils.isNotBlank(touri)&&!touri.equals("/")){
90+
return "redirect:/"+touri;
91+
}
8992
}
9093
return "redirect:/manage.html";
9194
} else {

src/main/java/cn/com/ttblog/ssmbootstrap_table/controller/TestController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public class TestController {
9090
//注入静态属性值
9191
private static String JDBCURL;
9292
//注入方法
93-
@Value("#{configProperties['url']}")
93+
@Value("#{configProperties['jdbc.url']}")
9494
public void setJdbcUrl(String url) {
9595
JDBCURL = url;
9696
}

src/main/java/cn/com/ttblog/ssmbootstrap_table/filter/LoginFilter.java

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,15 @@
1111
import javax.servlet.http.Cookie;
1212
import javax.servlet.http.HttpServletRequest;
1313
import javax.servlet.http.HttpServletResponse;
14+
15+
import cn.com.ttblog.ssmbootstrap_table.model.User;
1416
import org.apache.commons.codec.binary.Base64;
17+
import org.apache.commons.lang3.StringUtils;
1518
import org.slf4j.Logger;
1619
import org.slf4j.LoggerFactory;
1720
import org.springframework.beans.factory.annotation.Autowired;
1821
import com.github.jscookie.javacookie.Cookies;
19-
import cn.com.ttblog.ssmbootstrap_table.Constant.ConfigConstant;
22+
import cn.com.ttblog.ssmbootstrap_table.constant.ConfigConstant;
2023
import cn.com.ttblog.ssmbootstrap_table.service.IUserService;
2124
import cn.com.ttblog.ssmbootstrap_table.util.AntPathMatcherUtil;
2225

@@ -25,7 +28,7 @@ public class LoginFilter implements Filter {
2528
private FilterConfig filterConfig;
2629
@Autowired
2730
private IUserService userService;
28-
31+
2932
private static final Logger LOG=LoggerFactory.getLogger(LoginFilter.class);
3033
@Override
3134
public void init(FilterConfig filterConfig) throws ServletException {
@@ -34,110 +37,107 @@ public void init(FilterConfig filterConfig) throws ServletException {
3437

3538
@Override
3639
public void doFilter(ServletRequest servletRequest,
37-
ServletResponse servletResponse, FilterChain filterChain)
40+
ServletResponse servletResponse, FilterChain filterChain)
3841
throws IOException, ServletException {
3942
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
4043
HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
41-
String noFilterTagString = filterConfig
42-
.getInitParameter("noFilterTags").trim();
44+
String noFilterTagString = filterConfig.getInitParameter("noFilterTags").trim();
4345
boolean enable=Boolean.parseBoolean(filterConfig.getInitParameter("enable"));
4446
//不起用的情况下直接通过
4547
if(!enable){
46-
filterChain.doFilter(httpServletRequest,
47-
httpServletResponse);
48+
filterChain.doFilter(httpServletRequest,httpServletResponse);
4849
return ;
4950
}
50-
5151
String[] noFilterTags = noFilterTagString.split("\n");
5252
int length=noFilterTags.length;
5353
for(int i=0;i<length;i++){
5454
noFilterTags[i]=noFilterTags[i].trim();
5555
}
56-
LOG.debug("放行路径:{}-{},访问路径:{}",Arrays.toString(noFilterTags),noFilterTags.length,httpServletRequest.getRequestURI());
57-
if(AntPathMatcherUtil.isMatch(noFilterTags,httpServletRequest.getRequestURI())){
58-
filterChain.doFilter(httpServletRequest,
59-
httpServletResponse);
56+
String uri = httpServletRequest.getRequestURI();
57+
LOG.debug("访问路径:{},放行路径:{}-{}",uri,noFilterTags.length,Arrays.toString(noFilterTags));
58+
if(AntPathMatcherUtil.isMatch(noFilterTags,uri)){
59+
filterChain.doFilter(httpServletRequest, httpServletResponse);
6060
LOG.debug("非拦截uri");
6161
return ;
6262
}
63-
String uri = httpServletRequest.getRequestURI();
64-
LOG.debug("过滤路径:{}",uri);
65-
// 配置文件中允许放行的关键字
66-
if (noFilterTags != null) {
67-
for (String noFilterTag : noFilterTags) {
68-
if (noFilterTag == null || "".equals(noFilterTag.trim())) {
69-
continue;
70-
}
71-
if (uri.indexOf(noFilterTag.trim()) != -1) {
72-
LOG.debug("uri:"+uri);
73-
filterChain.doFilter(httpServletRequest,
74-
httpServletResponse);
75-
return;
76-
}
77-
}
78-
}
79-
80-
Cookie[] cookies=httpServletRequest.getCookies();
81-
Cookies cs=Cookies.initFromServlet(httpServletRequest, httpServletResponse);
82-
LOG.debug("path:"+uri);
83-
LOG.debug("cookies:"+cs.get().toString());
63+
Cookies cookies=Cookies.initFromServlet(httpServletRequest, httpServletResponse);
64+
LOG.debug("cookies:{}",cookies.get().toString());
8465
Object islogin=httpServletRequest.getSession().getAttribute(ConfigConstant.ISLOGIN);
8566
if ( islogin!= null&&Boolean.parseBoolean(islogin.toString())) {
86-
LOG.debug("p1");
87-
if(uri.endsWith(ConfigConstant.PROJECTNAME+"/")){
88-
httpServletResponse.sendRedirect(httpServletRequest
89-
.getContextPath() + "/manage.html");
90-
}else{
91-
filterChain.doFilter(httpServletRequest, httpServletResponse);
67+
//从session检查登录状态
68+
checkStatusFromSession(httpServletRequest,httpServletResponse,filterChain);
69+
return;
70+
} else if(cookies!=null&&cookies.get().size()>0){
71+
//从cookie检查登录状态
72+
checkStatusFromCookie(httpServletRequest,httpServletResponse,filterChain);
73+
return;
74+
}else{
75+
LOG.debug("^^^no cookie,no session");
76+
if(!httpServletResponse.isCommitted()){
77+
redirect(httpServletRequest,httpServletResponse);
78+
return ;
79+
}else {
80+
LOG.info("no cookie&session httpServletResponse.isCommitted():{}",httpServletResponse.isCommitted());
9281
}
93-
} else if(cookies!=null){
94-
LOG.debug("p2");
95-
boolean find=false;
96-
for(Cookie cookie:cookies){
97-
if(cookie.getName().equals(ConfigConstant.USERNAME)&&cookie.getValue().length()>0){
98-
find=true;
99-
LOG.warn("查询用户:{}",userService.getUserByName(cookie.getValue()));
100-
httpServletRequest.getSession().setAttribute(ConfigConstant.ISLOGIN, true);
101-
httpServletRequest.getSession().setAttribute(ConfigConstant.USERNAME, cookie.getValue());
102-
if(uri.endsWith(ConfigConstant.PROJECTNAME+"/")){
103-
httpServletResponse.sendRedirect(httpServletRequest
104-
.getContextPath() + "/manage.html");
105-
}else{
106-
filterChain.doFilter(httpServletRequest, httpServletResponse);
107-
}
82+
}
83+
}
84+
85+
private void checkStatusFromSession(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,FilterChain filterChain) throws IOException, ServletException {
86+
LOG.debug("get login status from session");
87+
String uri = httpServletRequest.getRequestURI();
88+
if(uri.endsWith(ConfigConstant.PROJECTNAME+"/")){
89+
httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/manage.html");
90+
}else{
91+
filterChain.doFilter(httpServletRequest, httpServletResponse);
92+
}
93+
}
94+
95+
private void checkStatusFromCookie(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,FilterChain filterChain) throws IOException, ServletException {
96+
LOG.debug("get login status from cookie");
97+
String uri = httpServletRequest.getRequestURI();
98+
Cookie[] cookiesArray=httpServletRequest.getCookies();
99+
boolean find=false;
100+
for(Cookie cookie:cookiesArray){
101+
if(cookie.getName().equals(ConfigConstant.USERNAME)&&cookie.getValue().length()>0){
102+
User user=userService.getUserByName(cookie.getValue());
103+
LOG.warn("根据cookie:{}查询用户:{}",cookie,user);
104+
if(user==null){
105+
break;
108106
}
109-
}
110-
if(!find){
111-
//关于committed状态 http://blog.csdn.net/jubincn/article/details/8920573
112-
if(!httpServletResponse.isCommitted()){
113-
//记录之前访问的参数
114-
String requrib=httpServletRequest.getRequestURI()+"?"+httpServletRequest.getQueryString();
115-
String requri=Base64.encodeBase64String(requrib.getBytes());
116-
httpServletResponse.sendRedirect(httpServletRequest
117-
.getContextPath() + "/index.html?requri="+requri);
107+
find=true;
108+
httpServletRequest.getSession().setAttribute(ConfigConstant.ISLOGIN, true);
109+
httpServletRequest.getSession().setAttribute(ConfigConstant.USERNAME, cookie.getValue());
110+
if(uri.endsWith(ConfigConstant.PROJECTNAME+"/")){
111+
httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/manage.html");
112+
}else{
113+
break;
118114
}
119-
return ;
120115
}
121-
}else{
122-
LOG.debug("^^^no cookie,no session");
123-
// if(uri.endsWith(ConfigConstant.PROJECTNAME+"/")){
124-
// httpServletResponse.sendRedirect(httpServletRequest
125-
// .getContextPath() + "/index.html");
126-
// }
116+
}
117+
if(!find){
118+
//关于committed状态 http://blog.csdn.net/jubincn/article/details/8920573
127119
if(!httpServletResponse.isCommitted()){
128-
//记录之前访问的参数
129-
String requrib=httpServletRequest.getRequestURI()+"?"+httpServletRequest.getQueryString();
130-
String requri=Base64.encodeBase64String(requrib.getBytes());
131-
httpServletResponse.sendRedirect(httpServletRequest
132-
.getContextPath() + "/index.html?requri="+requri);
120+
redirect(httpServletRequest,httpServletResponse);
121+
}else {
122+
LOG.info("no cookie httpServletResponse.isCommitted():{}",httpServletResponse.isCommitted());
133123
}
134-
return ;
124+
}else {
125+
filterChain.doFilter(httpServletRequest,httpServletResponse);
126+
}
127+
}
128+
129+
private void redirect(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws IOException {
130+
//记录之前访问的参数
131+
String uri = httpServletRequest.getRequestURI();
132+
if(StringUtils.isNotBlank(httpServletRequest.getQueryString())){
133+
uri+="?="+httpServletRequest.getQueryString();
135134
}
136-
135+
String base64uri=Base64.encodeBase64String(uri.getBytes());
136+
httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/index.html?requri="+base64uri);
137137
}
138138

139139
@Override
140140
public void destroy() {
141-
LOG.debug("destory");
141+
LOG.debug("loginfilter destory");
142142
}
143143
}

0 commit comments

Comments
 (0)