ASTRO企业应用 ASTROPRO-开发自定义认证插件:实现TokenParser接口

时间:2024-11-13 15:18:50

实现TokenParser接口

import com.huawei.devspore.plugin.spi.authentication.UserInfo;

import com.huaweicloud.devspore.auth.commons.spi.TokenParser;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Component;

@Component
public class CustomTokenParser implements TokenParser {

    /**
     * 若token定义在header中,可使用该接口,token获取根据配置由devspore-auth获取
     *
     * @param token
     * @param response
     * @return UserInfo
     */
    @Override
    public UserInfo parserToken(String token, HttpServletResponse response) {

        // 自定义token解析
        ......

        // 判断token是否过期
        ......

        UserInfo userInfo = new UserInfo();

        // 根据解析后的token信息填充UserInfo对象
        ......

        return userInfo;
    }

    /**
     * 若token未定义在header中,使用该接口
     *
     * @param request
     * @param response
     * @return UserInfo
     */
    @Override
    public UserInfo parserToken(HttpServletRequest request, HttpServletResponse response) {
        // 从httpServletRequest获取token
        ......

        // 自定义token解析
        ......

        // 判断token是否过期
        ......

        UserInfo userInfo = new UserInfo();

        // 根据解析后的token信息填充UserInfo对象
        ......

        return userInfo;
    }

}
support.huaweicloud.com/usermanual-astropro/astropro_05_0162.html