-
定义Oauth参数
首先在application.proterties中定义Oauth得参数

这些参数需要从第三方提供得集成文档中获取
-
创建Oauth构建包

-
创建提供接口类,监听类,拦截器实现类
-
创建接口类,此接口提供给第三方
@RestController public class OauthLoginTokenController { @ApiOperation("获取code") @GetMapping("/api/tokenLogin") public String tokenLogin(@ApiParam("唯一标识") @RequestParam("code") String code){ return code; } } -
创建监听类,此处设置拦截器名称,位置
@RestController public class ZybxContributionListener implements IContributionListener{ @Override public void loadFinished(IContributionEvent event) { //拦截器开关,根据需求自己设置是否开启(oauth-config-control此变量需要在application.proterties中定义) String falg = EOS8ApplicationContext.INSTANCE.getProperty("oauth-config-control"); if("true".endsWith(falg)) { // 增加一个eos资源拦截器,用于权限码判断 String id = "ZybxUserLoginInterceptor"; //拦截器类名称 WebInterceptorConfig config = new WebInterceptorConfig(); config.setFilterId(id); config.setClassName(ZybxUserLoginInterceptor.class.getName()); //拦截器类 config.setPattern("/*"); config.setSortIdx(200); WebInterceptorManager.INSTANCE.removeInterceptorConfig(id);//防止冲突 WebInterceptorManager.INSTANCE.addInterceptorConfig(config); System.out.println("执行拦截器-----1"); } } } -
创建拦截器实现类
public class ZybxUserLoginInterceptor implements IWebInterceptor { /** * .getLogger(ZybxUserLoginInterceptor.class);pms_all */ private static final Logger log = LoggerFactory.getLogger(ZybxUserLoginInterceptor.class); public static final String AUTHORIZATION = "Authorization"; private static ILoginService loginService; private final static List<String> ADMIN_ROLES = Arrays.asList("1","2","3","4","5","6","7","8","9"); static { BeanFactory beanFactory = BeanFactory.newInstance(); loginService = beanFactory.getBean(ILoginService.class); } @Override public void doIntercept(HttpServletRequest request, HttpServletResponse response, IWebInterceptorChain chain) throws IOE
实现Oauth单点登录的拦截器方法

最低0.47元/天 解锁文章
2550

被折叠的 条评论
为什么被折叠?



