From 0505f2204423dd019a33ad512dd9788712c6a053 Mon Sep 17 00:00:00 2001 From: zhouxiunai <154707516@qq.com> Date: Thu, 1 Nov 2018 16:03:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96=E7=94=A8?= =?UTF-8?q?=E6=88=B7id=EF=BC=8C=E5=90=8D=E7=A7=B0=E7=9A=84service=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gzzn/omms/adminapi/dto/HeaderUserDto.java | 23 ++++++++ .../exception/UserNoLoginException.java | 5 ++ .../omms/adminapi/service/IUserService.java | 6 ++ .../service/impl/UserServiceImpl.java | 55 +++++++++++++++++++ 4 files changed, 89 insertions(+) create mode 100644 src/main/java/com/gzzn/omms/adminapi/dto/HeaderUserDto.java create mode 100644 src/main/java/com/gzzn/omms/adminapi/exception/UserNoLoginException.java create mode 100644 src/main/java/com/gzzn/omms/adminapi/service/IUserService.java create mode 100644 src/main/java/com/gzzn/omms/adminapi/service/impl/UserServiceImpl.java diff --git a/src/main/java/com/gzzn/omms/adminapi/dto/HeaderUserDto.java b/src/main/java/com/gzzn/omms/adminapi/dto/HeaderUserDto.java new file mode 100644 index 0000000..533da2b --- /dev/null +++ b/src/main/java/com/gzzn/omms/adminapi/dto/HeaderUserDto.java @@ -0,0 +1,23 @@ +package com.gzzn.omms.adminapi.dto; + +/** + * header 中用户信息封装 + * @author Administrator + * + */ +public class HeaderUserDto { + private String userId; + private String userName; + public String getUserId() { + return userId; + } + public void setUserId(String userId) { + this.userId = userId; + } + public String getUserName() { + return userName; + } + public void setUserName(String userName) { + this.userName = userName; + } +} diff --git a/src/main/java/com/gzzn/omms/adminapi/exception/UserNoLoginException.java b/src/main/java/com/gzzn/omms/adminapi/exception/UserNoLoginException.java new file mode 100644 index 0000000..5438d12 --- /dev/null +++ b/src/main/java/com/gzzn/omms/adminapi/exception/UserNoLoginException.java @@ -0,0 +1,5 @@ +package com.gzzn.omms.adminapi.exception; + +public class UserNoLoginException extends RuntimeException { + +} diff --git a/src/main/java/com/gzzn/omms/adminapi/service/IUserService.java b/src/main/java/com/gzzn/omms/adminapi/service/IUserService.java new file mode 100644 index 0000000..37112e4 --- /dev/null +++ b/src/main/java/com/gzzn/omms/adminapi/service/IUserService.java @@ -0,0 +1,6 @@ +package com.gzzn.omms.adminapi.service; + +public interface IUserService { + String getCurrentUserId();//获取当前用户id + String getCurrentUserName();//获取当前用户名 +} diff --git a/src/main/java/com/gzzn/omms/adminapi/service/impl/UserServiceImpl.java b/src/main/java/com/gzzn/omms/adminapi/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..453f2c4 --- /dev/null +++ b/src/main/java/com/gzzn/omms/adminapi/service/impl/UserServiceImpl.java @@ -0,0 +1,55 @@ +package com.gzzn.omms.adminapi.service.impl; + + + +import java.io.IOException; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.gzzn.omms.adminapi.dto.HeaderUserDto; +import com.gzzn.omms.adminapi.exception.UserNoLoginException; +import com.gzzn.omms.adminapi.service.IUserService; + +import sun.misc.BASE64Decoder; + +@Service +public class UserServiceImpl implements IUserService { + @Autowired + private HttpServletRequest request; + + @Override + public String getCurrentUserId() { + return this.getHeaderUserDto().getUserId(); + } + + + @Override + public String getCurrentUserName() { + return this.getHeaderUserDto().getUserName(); + } + + //获取网关header中传递的用户信息 + private HeaderUserDto getHeaderUserDto() { + try + { + String userStr = request.getHeader("user"); + if(null == userStr) + { + throw new UserNoLoginException(); + } + BASE64Decoder base64Decoder = new BASE64Decoder(); + byte[] bt = base64Decoder.decodeBuffer(userStr); + + ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.readValue(bt, HeaderUserDto.class); + } + catch (IOException e) + { + throw new RuntimeException("header userinfo error!"+e.getMessage()); + } + } +}