调整微服务获取操作用户的方法,暂时通过请求头的Remote_User获取
diff --git a/samples/user/pom.xml b/samples/user/pom.xml
index 33eb022..23bbb2e 100644
--- a/samples/user/pom.xml
+++ b/samples/user/pom.xml
@@ -53,11 +53,6 @@
<dependency>
<groupId>com.supwisdom.infras</groupId>
- <artifactId>infras-security</artifactId>
- </dependency>
-
- <dependency>
- <groupId>com.supwisdom.infras</groupId>
<artifactId>infras-mvc</artifactId>
</dependency>
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/demo/ApiDemoUserController.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/demo/ApiDemoUserController.java
index c0242c3..9e287d4 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/demo/ApiDemoUserController.java
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/demo/ApiDemoUserController.java
@@ -11,6 +11,8 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import com.supwisdom.leaveschool.user.util.AuthUtil;
+
@RestController
@RequestMapping("/api/demo/users")
public class ApiDemoUserController {
@@ -25,6 +27,8 @@
*/
@GetMapping(path = "/greeting/{name}", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
public Map<String, Object> greeting(@PathVariable("name") String name) {
+ AuthUtil.getRemoteUser();
+
logger.debug(name);
Map<String, Object> result = new HashMap<String, Object>();
result.put("message", "Good " + name);
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRepository.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRepository.java
index 86d6e84..5bcc1e3 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRepository.java
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRepository.java
@@ -12,7 +12,7 @@
import org.springframework.stereotype.Repository;
import com.supwisdom.leaveschool.user.domain.User;
-import com.supwisdom.leaveschool.user.util.AuthenticationUtil;
+import com.supwisdom.leaveschool.user.util.AuthUtil;
@Repository
public interface UserRepository extends JpaRepository<User, String> {
@@ -60,7 +60,7 @@
}
entity.setDeleted(false);
- entity.setAddAccount(AuthenticationUtil.currentUsername());
+ entity.setAddAccount(AuthUtil.getRemoteUser());
entity.setAddTime(Calendar.getInstance().getTime());
User e = this.save(entity);
@@ -70,7 +70,7 @@
public default User update(User entity) {
- entity.setEditAccount(AuthenticationUtil.currentUsername());
+ entity.setEditAccount(AuthUtil.getRemoteUser());
entity.setEditTime(Calendar.getInstance().getTime());
User e = this.save(entity);
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/AuthenticationUtil.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/AuthUtil.java
similarity index 61%
rename from samples/user/src/main/java/com/supwisdom/leaveschool/user/util/AuthenticationUtil.java
rename to samples/user/src/main/java/com/supwisdom/leaveschool/user/util/AuthUtil.java
index 24368cb..29366aa 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/AuthenticationUtil.java
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/util/AuthUtil.java
@@ -1,37 +1,56 @@
package com.supwisdom.leaveschool.user.util;
+import java.util.Enumeration;
+
+import javax.servlet.http.HttpServletRequest;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
-public class AuthenticationUtil {
+public class AuthUtil {
- private static final Logger logger = LoggerFactory.getLogger(AuthenticationUtil.class);
+ private static final Logger logger = LoggerFactory.getLogger(AuthUtil.class);
- public static String currentUsername() {
+ public static String getRemoteUser() {
- /*
if (RequestContextHolder.getRequestAttributes() != null) {
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
if (servletRequestAttributes != null) {
HttpServletRequest httpServletRequest = servletRequestAttributes.getRequest();
if (httpServletRequest != null) {
String remoteUser = httpServletRequest.getRemoteUser();
- logger.debug("httpServletRequest.getRemoteUser(): ", remoteUser);
+ logger.debug("httpServletRequest.getRemoteUser(): {}", remoteUser);
+
+ if (remoteUser == null || remoteUser.isEmpty()) {
+ remoteUser = httpServletRequest.getHeader("remote_user");
+ logger.debug("remote_user: {}", remoteUser);
+ }
if (remoteUser != null) {
return remoteUser;
}
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("request headers: ");
+ Enumeration<String> headerNames = httpServletRequest.getHeaderNames();
+ while(headerNames.hasMoreElements()) {
+ String headerName = headerNames.nextElement();
+ logger.debug("{}: {}", headerName, httpServletRequest.getHeader(headerName));
+ }
+ logger.debug("request headers: ");
+ }
+
}
}
}
- */
//logger.warn("FIXME: currentUsername. return 'user' by default.");
//return "user"; // FIXME: currentUsername
- //throw new RuntimeException("exception.authentication.remote.user.must.not.empty");
+ throw new RuntimeException("exception.authentication.remote.user.must.not.empty");
+ /*
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication == null) {
@@ -62,6 +81,7 @@
return null;
+ */
}
}