

在很多客户的应用场景中，客户已经拥有自己的单点登录服务器，希望在一个单点处登录一次后其他系统不需要再登录，或者对登录有自己的特殊逻辑，这时候就可以适用本文档。

 

```
具体的使用方法步骤：1，实现kd.bos.login.thirdauth.ThirdSSOAuthHandler接口，编写自己SSO登录插件

                2，在租户管理中心配置登录插件
```


## 实现第三方接口，完成SSO插件开发

实现ThirdSSOAuthHandler接口的2个方法，一个方法实现登录页面的跳转，一个实现登录返回。具体例子如下：

```java

Package demo；

Import javax.servlet.http. HttpServletRequest;
Import javax.servlet.http. HttpServletResponse;

Import kd.bos.login.thirdauth.ThirdSSOAuthHandler；
Import kd.bos.login.thirdauth.ThirdSSOAuthHandler

Public class DEMOSSO implements ThirdSSOAuthHandler {

/**

 *该方法是用户没有登录的时候插件需要转移到正确的登录地址

 */
public void callTrdSSOLogin(HttpServletRequest request, HttpServletResponse response, String backUrl) {
              //用户需要登录的地址
               String loginUrl = “http://loginip/login.html;           
               try {
                     response.sendRedirect(loginUrl);
               } catch (IOException e) {
                                              
                       e.printStackTrace();
               }


}

/**

 * 该方法实现第三发插件认证及认证结果的返回

 */
@Override
public UserAuthResult getTrdSSOAuth(HttpServletRequest request, HttpServletResponse response) {
        // TODO Auto-generated method stub
        UserAuthResult result=new UserAuthResult();
        result.setSucess(false);
        //这里编写自己的登录逻辑，判断是否登陆成功，并填写正确的返回类型和返回值 
        String phone=SSOPluginsUtil.getLoginPhone(request);
        If(phone!=null){
              //当前返回类型手机，用户名，email，工号
              result.setUserType(UserProperType.Mobile);
              result.setUser(phone);
              result.setSucess(true);
        }
 
        return result;
}
 ```

 

 


## 在苍穹云管理中心对数据中心进行插件配置

进入苍穹云管理中心，在数据中心中配置第三方SSO.

![img](images/clip_image002.jpg)