1515import lombok .RequiredArgsConstructor ;
1616import lombok .extern .slf4j .Slf4j ;
1717import org .apache .commons .lang3 .StringUtils ;
18+ import org .springframework .beans .factory .annotation .Value ;
1819import org .springframework .http .HttpStatus ;
1920import org .springframework .http .ResponseEntity ;
2021import org .springframework .http .server .reactive .ServerHttpRequest ;
@@ -43,6 +44,9 @@ public class UserController {
4344 private final OmsService omsService ;
4445 private final OmsExtensionService omsExtensionService ;
4546
47+ @ Value ("${datamate.jwt.enable:false}" )
48+ private Boolean jwtEnable ;
49+
4650 private static final String AUTH_TOKEN_KEY = "__Host-X-Auth-Token" ;
4751 private static final String CSRF_TOKEN_KEY = "__Host-X-Csrf-Token" ;
4852
@@ -109,32 +113,32 @@ public ResponseEntity<Response<LoginResponse>> register(@Valid @RequestBody Regi
109113 */
110114 @ GetMapping ("/me" )
111115 public Response <UserResponse > getCurrentUser (ServerHttpRequest request ) {
112- log .info ("=== /api/user/me called ===" );
116+ log .debug ("=== /api/user/me called ===" );
113117
114118 // 优先检查 SSO 模式(从 cookies 读取 OMS token)
115119 MultiValueMap <String , HttpCookie > cookies = request .getCookies ();
116120 String authToken = getToken (cookies , AUTH_TOKEN_KEY );
117121 String csrfToken = getToken (cookies , CSRF_TOKEN_KEY );
118122
119- log .info ("Cookies present - __Host-X-Auth-Token: {}, __Host-X-Csrf-Token: {}" ,
123+ log .debug ("Cookies present - __Host-X-Auth-Token: {}, __Host-X-Csrf-Token: {}" ,
120124 StringUtils .isNotBlank (authToken ), StringUtils .isNotBlank (csrfToken ));
121125
122126 if (StringUtils .isNotBlank (authToken )) {
123127 try {
124128 // 获取真实 IP
125129 String realIp = getRealIp (request );
126- log .info ("Calling OMS service with realIp: {}" , realIp );
130+ log .debug ("Calling OMS service with realIp: {}" , realIp );
127131
128132 // 调用 OMS 服务验证
129133 String username = omsService .getUserNameFromOms (authToken , csrfToken , realIp );
130134 if (StringUtils .isNotBlank (username )) {
131- log .info ("SSO mode : user={}" , username );
135+ log .info ("SSO authentication successful : user={}" , username );
132136
133137 // 获取用户组 ID(可能为 null)
134138 String groupId = null ;
135139 try {
136140 groupId = omsExtensionService .getUserGroupId (username );
137- log .info ("User groupId: {}" , groupId );
141+ log .debug ("User groupId: {}" , groupId );
138142 } catch (Exception e ) {
139143 log .warn ("Failed to get user group ID: {}" , e .getMessage ());
140144 }
@@ -144,6 +148,7 @@ public Response<UserResponse> getCurrentUser(ServerHttpRequest request) {
144148 .groupId (groupId )
145149 .authenticated (true )
146150 .authMode ("SSO" )
151+ .requireLogin (true ) // SSO 模式始终要求登录
147152 .build ());
148153 } else {
149154 log .warn ("OMS service returned null username" );
@@ -160,20 +165,26 @@ public Response<UserResponse> getCurrentUser(ServerHttpRequest request) {
160165 String username = userService .validateToken (token );
161166
162167 if (StringUtils .isNotBlank (username )) {
163- log .info ("JWT mode : user={}" , username );
168+ log .info ("JWT authentication successful : user={}" , username );
164169 return Response .ok (UserResponse .builder ()
165170 .username (username )
166171 .authenticated (true )
167172 .authMode ("JWT" )
173+ .requireLogin (true ) // 已登录
168174 .build ());
175+ } else {
176+ log .warn ("JWT token validation failed" );
169177 }
170178 }
171179
172- // 未登录
173- log .debug ("User not authenticated" );
180+ // 未登录:检查是否强制要求登录
181+ boolean requireLogin = Boolean .TRUE .equals (jwtEnable );
182+ log .debug ("User not authenticated, requireLogin={}, jwtEnable={}" , requireLogin , jwtEnable );
183+
174184 return Response .ok (UserResponse .builder ()
175185 .authenticated (false )
176186 .authMode ("NONE" )
187+ .requireLogin (requireLogin ) // 关键字段:告诉前端是否需要登录
177188 .build ());
178189 }
179190}
0 commit comments