1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package com.vincent.rsf.openApi.security.utils;
 
import com.vincent.rsf.openApi.entity.constant.Constants;
import com.vincent.rsf.openApi.entity.app.App;
 
import javax.servlet.http.HttpServletRequest;
 
/**
 * 认证工具类
 * 
 * 提供认证相关的通用功能
 * 
 * @author vincent
 * @since 2026-01-05
 */
public class AuthUtils {
 
    /**
     * 从请求中获取AppId
     * 
     * @param request HTTP请求
     * @return AppId
     */
    public static String getAppId(HttpServletRequest request) {
        // 优先从请求属性中获取(认证过滤器设置的)
        String appId = (String) request.getAttribute(Constants.REQUEST_ATTR_APP_ID);
        if (appId != null) {
            return appId;
        }
        
        // 从请求头获取
        return request.getHeader(Constants.HEADER_APP_ID);
    }
 
    /**
     * 从请求中获取App信息
     * 
     * @param request HTTP请求
     * @return App信息
     */
    public static App getAppInfo(HttpServletRequest request) {
        return (App) request.getAttribute(Constants.REQUEST_ATTR_APP_INFO);
    }
 
    /**
     * 检查请求是否已通过App认证
     * 
     * @param request HTTP请求
     * @return 是否已认证
     */
    public static boolean isAuthenticated(HttpServletRequest request) {
        return getAppId(request) != null;
    }
}