Expires change to Seconds

This commit is contained in:
MaxKey
2022-02-14 21:50:58 +08:00
parent d67bc93c97
commit 782c7bd33f
21 changed files with 97 additions and 32 deletions

View File

@@ -119,8 +119,8 @@ public class CasAuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
HttpServletResponse response){
AppsCasDetails casDetails = (AppsCasDetails)WebContext.getAttribute(CasConstants.PARAMETER.ENDPOINT_CAS_DETAILS);
ServiceTicketImpl serviceTicket = new ServiceTicketImpl(WebContext.getAuthentication(),casDetails);
String ticket = ticketServices.createTicket(serviceTicket);
String ticket = ticketServices.createTicket(serviceTicket,casDetails.getExpires());
StringBuffer callbackUrl = new StringBuffer(casDetails.getCallbackUrl());
if(casDetails.getCallbackUrl().indexOf("?")==-1) {

View File

@@ -54,6 +54,35 @@ public abstract class RandomServiceTicketServices implements TicketServices {
return ticketId;
}
@Override
public String createTicket(Ticket ticket, int validitySeconds) {
//String code = generator.generate();
/*
* replace with uuid random code
* add by Crystal.Sea
*/
//String ticket = UUID.randomUUID().toString();
String ticketId = "";
if(ticket.getClass().getSimpleName().equalsIgnoreCase("ServiceTicketImpl")){
ticketId = generator.getNewTicketId(CasConstants.PREFIX.SERVICE_TICKET_PREFIX);
}else if(ticket.getClass().getSimpleName().equalsIgnoreCase("ProxyTicketImpl")){
ticketId = generator.getNewTicketId(CasConstants.PREFIX.PROXY_TICKET_PREFIX);
}else if(ticket.getClass().getSimpleName().equalsIgnoreCase("TicketGrantingTicketImpl")){
ticketId = generator.getNewTicketId(CasConstants.PREFIX.TICKET_GRANTING_TICKET_PREFIX);
}else if(ticket.getClass().getSimpleName().equalsIgnoreCase("ProxyGrantingTicketImpl")){
ticketId = generator.getNewTicketId(CasConstants.PREFIX.PROXY_GRANTING_TICKET_PREFIX);
}else if(ticket.getClass().getSimpleName().equalsIgnoreCase("ProxyGrantingTicketIOUImpl")){
ticketId = generator.getNewTicketId(CasConstants.PREFIX.PROXY_GRANTING_TICKET_IOU_PREFIX);
return ticketId;
}else {
ticketId = generator.getNewTicketId(CasConstants.PREFIX.SERVICE_TICKET_PREFIX);
}
store(ticketId, ticket,validitySeconds);
return ticketId;
}
public Ticket consumeTicket(String ticketId) throws Exception{
Ticket ticket = this.remove(ticketId);
if (ticket == null) {

View File

@@ -26,6 +26,8 @@ public interface TicketServices {
* @return The generated code.
*/
String createTicket(Ticket ticket);
String createTicket(Ticket ticket , int validitySeconds);
/**
* Consume a authorization code.
@@ -38,6 +40,8 @@ public interface TicketServices {
throws Exception;
public void store(String ticketId, Ticket ticket);
public void store(String ticketId, Ticket ticket, int validitySeconds);
public Ticket remove(String ticket);

View File

@@ -36,6 +36,11 @@ public class InMemoryProxyGrantingTicketServices extends RandomServiceTicketServ
@Override
public void store(String ticketId, Ticket ticket) {
store(ticketId, ticket , 60 * 3);
}
@Override
public void store(String ticketId, Ticket ticket, int validitySeconds) {
casTicketStore.put(ticketId, ticket);
}

View File

@@ -52,8 +52,13 @@ public class RedisProxyGrantingTicketServices extends RandomServiceTicketService
@Override
public void store(String ticketId, Ticket ticket) {
store(ticketId,ticket,serviceTicketValiditySeconds);
}
@Override
public void store(String ticketId, Ticket ticket, int validitySeconds) {
RedisConnection conn=connectionFactory.getConnection();
conn.setexObject(PREFIX+ticketId, serviceTicketValiditySeconds, ticket);
conn.setexObject(PREFIX+ticketId, validitySeconds, ticket);
conn.close();
}

View File

@@ -36,6 +36,11 @@ public class InMemoryTicketServices extends RandomServiceTicketServices {
@Override
public void store(String ticketId, Ticket ticket) {
store(ticketId, ticket, 60 * 3);
}
@Override
public void store(String ticketId, Ticket ticket, int validitySeconds) {
casTicketStore.put(ticketId, ticket);
}

View File

@@ -52,9 +52,15 @@ public class RedisTicketServices extends RandomServiceTicketServices {
@Override
public void store(String ticketId, Ticket ticket) {
store(ticketId,ticket,serviceTicketValiditySeconds);
}
@Override
public void store(String ticketId, Ticket ticket, int validitySeconds) {
RedisConnection conn=connectionFactory.getConnection();
conn.setexObject(prefixTicketId(ticketId), serviceTicketValiditySeconds, ticket);
conn.setexObject(prefixTicketId(ticketId), validitySeconds, ticket);
conn.close();
}
@Override

View File

@@ -35,7 +35,13 @@ public class InMemoryTicketGrantingTicketServices extends RandomServiceTicketSer
@Override
public void store(String ticketId, Ticket ticket) {
casTicketGrantingTicketStore.put(ticketId, ticket);
store(ticketId, ticket , 60 * 3);
}
@Override
public void store(String ticketId, Ticket ticket, int validitySeconds) {
casTicketGrantingTicketStore.put(ticketId, ticket);
}
@Override

View File

@@ -51,8 +51,13 @@ public class RedisTicketGrantingTicketServices extends RandomServiceTicketServic
@Override
public void store(String ticketId, Ticket ticket) {
store(ticketId, ticket, serviceTicketValiditySeconds);
}
@Override
public void store(String ticketId, Ticket ticket, int validitySeconds) {
RedisConnection conn=connectionFactory.getConnection();
conn.setexObject(PREFIX+ticketId, serviceTicketValiditySeconds, ticket);
conn.setexObject(PREFIX+ticketId, validitySeconds, ticket);
conn.close();
}