Skip to content

Commit

Permalink
修复 sa-token-sso 部分问题
Browse files Browse the repository at this point in the history
  • Loading branch information
click33 committed May 12, 2024
1 parent 8f467bb commit 35cb810
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public SaResult getSsoAuthUrl(String clientLoginUrl) {
// 根据ticket进行登录
@Mapping("/sso/doLoginByTicket")
public SaResult doLoginByTicket(String ticket) {
Object loginId = SaSsoClientProcessor.instance.checkTicketByMode2Or3(ticket, "/sso/doLoginByTicket");
Object loginId = SaSsoClientProcessor.instance.checkTicket(ticket, "/sso/doLoginByTicket");
if(loginId != null) {
StpUtil.login(loginId);
return SaResult.data(StpUtil.getTokenValue());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public SaResult getSsoAuthUrl(String clientLoginUrl) {
// 根据ticket进行登录
@RequestMapping("/sso/doLoginByTicket")
public SaResult doLoginByTicket(String ticket) {
Object loginId = SaSsoClientProcessor.instance.checkTicketByMode2Or3(ticket, "/sso/doLoginByTicket");
Object loginId = SaSsoClientProcessor.instance.checkTicket(ticket, "/sso/doLoginByTicket");
if(loginId != null) {
StpUtil.login(loginId);
return SaResult.data(StpUtil.getTokenValue());
Expand Down
6 changes: 3 additions & 3 deletions sa-token-doc/doc.html
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,9 @@ <h1 class="logo-text">Sa-Token</h1>
</script>

<!-- -->
<script src="./static/docsify-plugin.js?v=6"></script>
<script src="./static/is-star-plugin.js?v=6"></script>
<script src="./static/is-fill-in-wj-plugin.js?v=6"></script>
<script src="./static/docsify-plugin.js?v=7"></script>
<script src="./static/is-star-plugin.js?v=7"></script>
<script src="./static/is-fill-in-wj-plugin.js?v=7"></script>
<script>
var saTokenTopVersion = '1.38.0'; // Sa-Token最新版本
var name = '<img style="width: 60px; height: 60px; vertical-align: middle;" src="logo.png" alt="logo" /> ';
Expand Down
2 changes: 1 addition & 1 deletion sa-token-doc/sso/sso-h5.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public class H5Controller {
// 根据ticket进行登录
@RequestMapping("/sso/doLoginByTicket")
public SaResult doLoginByTicket(String ticket) {
Object loginId = SaSsoClientProcessor.instance.checkTicketByMode2Or3(ticket, "/sso/doLoginByTicket");
Object loginId = SaSsoClientProcessor.instance.checkTicket(ticket, "/sso/doLoginByTicket");
if(loginId != null) {
StpUtil.login(loginId);
return SaResult.data(StpUtil.getTokenValue());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ public Object ssoLogin() {
return res.redirect(serverAuthUrl);
} else {
// 1、校验ticket,获取 loginId
SaCheckTicketResult ctr = checkTicketByMode2Or3(ticket, apiName.ssoLogin);
SaCheckTicketResult ctr = checkTicket(ticket, apiName.ssoLogin);

// 2、如果开发者自定义了ticket结果值处理函数,则使用自定义的函数
if(cfg.ticketResultHandle != null) {
Expand Down Expand Up @@ -193,7 +193,7 @@ public Object ssoLogoutByMode3() {
SaResult result = ssoClientTemplate.request(url);

// 校验响应状态码
if(SaResult.CODE_SUCCESS == result.getCode()) {
if(result.getCode() != null && SaResult.CODE_SUCCESS == result.getCode()) {
// 极端场景下,sso-server 中心的单点注销可能并不会通知到此 client 端,所以这里需要再补一刀
if(stpLogic.isLogin()) {
stpLogic.logout();
Expand Down Expand Up @@ -240,12 +240,12 @@ public Object ssoLogoutCall() {
// 工具方法

/**
* 封装:校验ticket,取出loginId,如果 ticket 无效则抛出异常
* 封装:校验ticket,取出loginId,如果 ticket 无效则抛出异常 (适用于模式二或模式三)
* @param ticket ticket码
* @param currUri 当前路由的uri,用于计算单点注销回调地址
* @param currUri 当前路由的uri,用于计算单点注销回调地址 (如果是使用模式二,可以填写null)
* @return loginId
*/
public SaCheckTicketResult checkTicketByMode2Or3(String ticket, String currUri) {
public SaCheckTicketResult checkTicket(String ticket, String currUri) {
SaSsoClientConfig cfg = ssoClientTemplate.getClientConfig();
ApiName apiName = ssoClientTemplate.apiName;
ParamName paramName = ssoClientTemplate.paramName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,8 +220,8 @@ public Object ssoSignout() {
return ssoSignoutByUserVisit();
}

// SSO-Server端:单点注销 [Client调用式] (带loginId参数 & isHttp=true)
if(cfg.getIsHttp() && cfg.getIsSlo() && req.hasParam(paramName.loginId)) {
// SSO-Server端:单点注销 [Client调用式] (带loginId参数)
if(cfg.getIsSlo() && req.hasParam(paramName.loginId)) {
return ssoSignoutByClientHttp();
}

Expand Down

0 comments on commit 35cb810

Please sign in to comment.