目前,前端vue,后端SpringCloud多模块,各个模块无关联,可单独运行。 我按照官方教程,单独建立了一个FineReport模块,采用war包模式; 然后放到外置tomcat中启动,可以正常访问,进入决策系统等等都没问题。 下一步是单点登录,预想用户只需登录一次原有系统,就可以访问决策系统。 参考了官方文档 https://help.finereport.com/doc-view-3232.html 第一次尝试:
其他想法: 1. 如果无法跨模块拦截登录请求,就改为先登录原有系统; 登录成功后,再用RPC调用Fr模块进行认证; 但是发现没法获取 ServletRequest、ServletResponse、FilterChain; 2. 是否可以在上面的认证方法加入ServletRequest、ServletResponse两个参数,通过RPC传 递到Fr模块呢? 3. 这部分尚未验证,不知道是否可行。 第二次尝试:参考官方文档 https://help.finereport.com/doc-view-884.html 1. 在前端发起登录认证的回调函数中,向Fr发起认证请求,请求地址为: 2. 经此测试,是可以完成认证的,返回结果: callback({"accessToken":"eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJmYW5ydWFuIiwiaWF0IjoxNTg0NDMwNzczLCJleHAiOjE1ODQ0MzQzNzMsInN1YiI6ImxlZSIsImRlc2NyaXB0aW9uIjoiWzY3NGVdWzRmY2FdKGxlZSkiLCJqdGkiOiJqd3QifQ.TiihfESiZRL0RAl1sRql8-uHv-rTsTHkpFADMbOpDwg","url":"<a href="http://localhost:8080/fr/decision?fine_username=username&fine_password=password&validity=-1","status":"success"})">http://localhost:8080/fr/decision?fine_username=username&fine_password=password&validity=-1","status":"success"}) 3. 认证成功后,访问:http://localhost:8080/fr/decision,即可进入决策系统首页。 4. 但是这样就要发两次请求,和预想中的不一样,能否在一次登录中,完成两个系统的认证,求大佬给一些解决方案。 万分感谢。 |
0
|
|