
原创!无插件hack方式实现conflulence open connect sso登陆
原创!无插件hack方式实现conflulence open connect sso登陆
原创!无插件hack方式实现conflulence open connect sso登陆
原创!无插件hack方式实现conflulence open connect sso登陆
- 登陆页面增加sso按钮
按钮跳转页面为SSO登陆页面,例如:
<a href="https://sso.xxx.com/application/o/authorize/?response_type=code&client_id=xxxxxx&redirect_uri=https://confluence.xxx.com/plugins/servlet/sso/callback&scope=openid+profile+email" >Login with SSO</a>
2.增加后台
public class OIDCCallbackServlet extends HttpServlet { //private static final Logger LOGGER = Logger.getLogger(OIDCCallbackServlet.class.getName()); // 1. 换成你真实的参数 private static final String TOKEN_URL = "https://sso.xxx.cn/application/o/token/"; private static final String USERINFO_URL= "https://sso.xxx.cn/application/o/userinfo/"; private static final String CLIENT_ID = "xxxxx"; private static final String CLIENT_SECRET = "dddddd"; private static final String REDIRECT_URI = "https://confluence.xxx.cn/plugins/servlet/sso/callback"; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String code = req.getParameter("code"); if (code == null || code.trim().isEmpty()) { resp.sendError(400, "缺少 code 参数"); return; } try { System.out.println("CALLBACK Code: " + code); // 1) 准备请求参数和请求头 // 2) 发送 POST 请求获取 token // 2) token 换 userinfo // 将 Principal 对象放入 Seraph 的特定会话属性中 req.getSession().setAttribute("seraph_defaultauthenticator_user", principal); System.out.println("SSO Login SUCCESS"); resp.sendRedirect("/"); // 回到首页 } catch (Exception e) { System.out.println("OIDC Exception: " + e); throw new IOException("OIDC 登录失败", e); } } }
3.修改启动类
<!-- ======== --> <!-- Servlets --> <!-- ======== --> <!-- OIDC Callback Servlet --> <servlet> <servlet-name>OIDCCallbackServlet</servlet-name> <servlet-class>com.atlassian.confluence.sso.OIDCCallbackServlet</servlet-class> <load-on-startup>10</load-on-startup> </servlet>
4.查看日志
打算写成脚本方式,支持一键安装和卸载。(有尝获取代码~)
============ 欢迎各位老板打赏~ ===========


与本文相关的文章
- · 单点登录实现——基于OAuth2.0协议的接入方案
- · 单点登录SSO的实现原理:asp.net Forms身份验证详解(三)
- · 单点登录SSO的实现原理:附源码(二)
- · 单点登录SSO的实现原理(一)
- · 利用k8s ingress访问非POD服务
- · 解决vault sidecar认证失败的问题
- · Docker 快速部署 FastAPI 项目
- · docker安装 Confluence9
- · codium-server.service
- · 修改hoppscotch支持必须登陆指定用户才可以使用
- · 单台服务器应用不中断服务热部署滚动更新方案
- · docker安装code-server