Commit 2e728596 by 陶光胜

init

parent 6db6a2e5
......@@ -17,6 +17,7 @@
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<libraryVersion>4.0-SNAPSHOT</libraryVersion>
<gic-redis-data>4.0-SNAPSHOT</gic-redis-data>
</properties>
<distributionManagement>
<repository>
......@@ -65,7 +66,11 @@
<artifactId>gic-commons</artifactId>
<version>${gic-commons}</version>
</dependency>
<dependency>
<groupId>com.gic </groupId>
<artifactId>gic-redis-data </artifactId>
<version>${gic-redis-data} </version>
</dependency>
</dependencies>
<build>
......
......@@ -4,4 +4,6 @@ public class Constants {
public static String INDEX_ENTERPRISEID = "test-enterprise-20190716";
public static String STORE_SCENECODE = "store";
public static String ColumnCategoryCode = "enterprise-store";
public static String USER_TOKEN = "token";
public static String TOKEN_KEY = "enterprise:user:";
}
......@@ -13,7 +13,7 @@ public class UserDetailFilter implements Filter {
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
RpcContext context = RpcContext.getContext();
Map<String, String> attachments = context.getAttachments();
UserDetailUtils.setUserDetail(attachments.get("userDetail"));
//UserDetailUtils.setUserDetail(attachments.get("userDetail"));
return invoker.invoke(invocation);
}
}
package com.gic.enterprise.utils;
import com.alibaba.fastjson.JSON;
import com.gic.commons.util.ToolUtil;
import com.gic.commons.web.RequestThreadLocal;
import com.gic.commons.web.ResponseThreadLocal;
import com.gic.commons.web.ex.ErrorEnum;
import com.gic.commons.web.ex.GicApiException;
import com.gic.enterprise.constants.Constants;
import com.gic.redis.data.util.RedisUtil;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.util.concurrent.TimeUnit;
public class UserDetailUtils {
private static UserDetail userDetail = null;
public static UserDetail getUserDetail(){
System.out.println(JSON.toJSONString(userDetail));
HttpServletRequest request = RequestThreadLocal.get();
if (request != null){
Cookie[] cookies = request.getCookies();
String token = null;
for (Cookie cookie : cookies) {
if (Constants.USER_TOKEN.equals(cookie.getName())) {
token = cookie.getValue();
break;
}
}
String key = Constants.TOKEN_KEY+token;
Object cache = RedisUtil.getCache(key);
if(cache != null){
return (UserDetail) cache;
}
}
return new UserDetail();
}
public static void setUserDetail(String userDetails){
userDetail = JSON.parseObject(userDetails, UserDetail.class);
public static void setUserDetail(UserDetail userDetail){
String uuId = ToolUtil.randomUUID();
String key = Constants.TOKEN_KEY+uuId;
RedisUtil.setCache(key, userDetail, 1l, TimeUnit.HOURS);
Cookie cookie = new Cookie(Constants.USER_TOKEN, uuId);
cookie.setPath("/");
ResponseThreadLocal.get().addCookie(cookie);
}
}
package com.gic.enterprise.interceptor;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AuthInterceptor extends HandlerInterceptorAdapter {
private static final Logger log = LogManager.getLogger(AuthInterceptor.class);
private String[] ignoreURI = new String[] { "do-login", "do-logout" ,"wechat-auth-callback","get-coupon-list-ignorelogin",
"get-store-widget-store-ignorelogin"};
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception {
return true;
}
}
package com.gic.enterprise.interceptor;
import com.gic.commons.web.RequestThreadLocal;
import com.gic.commons.web.ResponseThreadLocal;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @ClassName: RequestInteceptor
* @Description: TODO(这里用一句话描述这个类的作用)
* @author xugh
* @date 2018年5月31日 下午4:53:23
*
*/
public class RequestInteceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception {
RequestThreadLocal.set(request);
ResponseThreadLocal.set(response);
return true;
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
RequestThreadLocal.remove();
ResponseThreadLocal.remove();
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<mvc:interceptors>
<bean class="com.gic.enterprise.interceptor.RequestInteceptor"></bean>
<bean class="com.gic.commons.interceptor.HeaderTagInterceptor"/>
<bean class="com.gic.enterprise.interceptor.AuthInterceptor"></bean>
</mvc:interceptors>
</beans>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment