mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-07 01:18:27 +08:00
OnlineTicket Fix
This commit is contained in:
parent
83872c2ebc
commit
3467255d07
@ -17,7 +17,7 @@ public class OnlineTicket implements Serializable{
|
|||||||
|
|
||||||
public Authentication authentication;
|
public Authentication authentication;
|
||||||
|
|
||||||
private HashMap<String , Apps> authorizedApps;
|
private HashMap<String , Apps> authorizedApps = new HashMap<String , Apps>();
|
||||||
|
|
||||||
|
|
||||||
public OnlineTicket(String ticketId) {
|
public OnlineTicket(String ticketId) {
|
||||||
@ -65,6 +65,10 @@ public class OnlineTicket implements Serializable{
|
|||||||
public void setAuthorizedApps(HashMap<String, Apps> authorizedApps) {
|
public void setAuthorizedApps(HashMap<String, Apps> authorizedApps) {
|
||||||
this.authorizedApps = authorizedApps;
|
this.authorizedApps = authorizedApps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setAuthorizedApp(Apps authorizedApp) {
|
||||||
|
this.authorizedApps.put(authorizedApp.getId(), authorizedApp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -25,9 +25,12 @@ import java.util.Map;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.maxkey.authn.BasicAuthentication;
|
||||||
|
import org.maxkey.authn.online.OnlineTicket;
|
||||||
import org.maxkey.authz.cas.endpoint.ticket.CasConstants;
|
import org.maxkey.authz.cas.endpoint.ticket.CasConstants;
|
||||||
import org.maxkey.authz.cas.endpoint.ticket.ServiceTicketImpl;
|
import org.maxkey.authz.cas.endpoint.ticket.ServiceTicketImpl;
|
||||||
import org.maxkey.authz.endpoint.AuthorizeBaseEndpoint;
|
import org.maxkey.authz.endpoint.AuthorizeBaseEndpoint;
|
||||||
|
import org.maxkey.authz.singlelogout.LogoutType;
|
||||||
import org.maxkey.domain.apps.AppsCasDetails;
|
import org.maxkey.domain.apps.AppsCasDetails;
|
||||||
import org.maxkey.web.WebConstants;
|
import org.maxkey.web.WebConstants;
|
||||||
import org.maxkey.web.WebContext;
|
import org.maxkey.web.WebContext;
|
||||||
@ -125,6 +128,13 @@ public class CasAuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(casDetails.getLogoutType()==LogoutType.BACK_CHANNEL) {
|
||||||
|
String onlineTicketId = ((BasicAuthentication)WebContext.getAuthentication().getPrincipal()).getOnlineTicket().getTicketId();
|
||||||
|
OnlineTicket onlineTicket = onlineTicketServices.get(onlineTicketId);
|
||||||
|
onlineTicket.setAuthorizedApp(casDetails);
|
||||||
|
onlineTicketServices.store(onlineTicketId, onlineTicket);
|
||||||
|
}
|
||||||
|
|
||||||
_logger.debug("redirect to CAS Client URL " + callbackUrl);
|
_logger.debug("redirect to CAS Client URL " + callbackUrl);
|
||||||
|
|
||||||
return WebContext.redirect(callbackUrl.toString());
|
return WebContext.redirect(callbackUrl.toString());
|
||||||
|
|||||||
@ -20,6 +20,7 @@ package org.maxkey.authz.cas.endpoint;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.maxkey.authn.online.OnlineTicketServices;
|
||||||
import org.maxkey.authz.cas.endpoint.ticket.CasConstants;
|
import org.maxkey.authz.cas.endpoint.ticket.CasConstants;
|
||||||
import org.maxkey.authz.cas.endpoint.ticket.service.TicketServices;
|
import org.maxkey.authz.cas.endpoint.ticket.service.TicketServices;
|
||||||
import org.maxkey.authz.endpoint.AuthorizeBaseEndpoint;
|
import org.maxkey.authz.endpoint.AuthorizeBaseEndpoint;
|
||||||
@ -50,6 +51,10 @@ public class CasBaseAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
|||||||
@Qualifier("casTicketGrantingTicketServices")
|
@Qualifier("casTicketGrantingTicketServices")
|
||||||
protected TicketServices casTicketGrantingTicketServices;
|
protected TicketServices casTicketGrantingTicketServices;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
@Qualifier("onlineTicketServices")
|
||||||
|
protected OnlineTicketServices onlineTicketServices;
|
||||||
|
|
||||||
|
|
||||||
public void setContentType(
|
public void setContentType(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
|
|||||||
@ -18,7 +18,7 @@ public class OnlineTicketEndpoint {
|
|||||||
protected OnlineTicketServices onlineTicketServices;
|
protected OnlineTicketServices onlineTicketServices;
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping(value="/ticketValidate")
|
@RequestMapping(value="/validate")
|
||||||
public OnlineTicket ticketValidate(
|
public OnlineTicket ticketValidate(
|
||||||
@RequestParam(value ="ticket",required = true) String ticket) {
|
@RequestParam(value ="ticket",required = true) String ticket) {
|
||||||
OnlineTicket onlineTicket = onlineTicketServices.get(ticket);
|
OnlineTicket onlineTicket = onlineTicketServices.get(ticket);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user