/*
 * Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 

package org.maxkey.authz.cas.endpoint.ticket;


public class CasConstants {
	/* CAS Protocol Parameters. **/
	public static final class PARAMETER{
		public final static String ENDPOINT_CAS_DETAILS="CAS_AUTHORIZE_ENDPOINT_CAS_DETAILS";
		
		public final static String PARAMETER_MAP="CAS_AUTHORIZE_ENDPOINT_PARAMETER_MAP";

		/** Constant representing the ticket parameter in the request. */
		public final static String TICKET="ticket";
		
		/** Constant representing the service parameter in the request. */
		public static final String SERVICE = "service";
		
		/** Constant representing the targetService parameter in the request. */
		public static final String TARGET_SERVICE = "targetService";
		
		/** Constant representing the method parameter in the request. */
		public static final String METHOD = "method";
		
		/** Constant representing the proxy callback url parameter in the request. */
		public static final String PROXY_CALLBACK_URL = "pgtUrl";

	    /** Constant representing the renew parameter in the request. */
		public static final String RENEW = "renew";

	    /** Constant representing the gateway parameter in the request. */
		public static final String GATEWAY = "gateway";

	    /** Constant representing the format parameter in the request. */
		public static final String FORMAT = "format";
	    
	    /** Constant representing the pgtId parameter in the request. */
		public static final String PROXY_GRANTING_TICKET_ID = "pgtId";

	    /** Constant representing the pgt parameter in the request. */
		public static final String PROXY_GRANTING_TICKET = "pgt";

	    /** Constant representing the pgtIou parameter in the request. */
		public static final String PROXY_GRANTING_TICKET_IOU = "pgtIou";
		
		public static final String REST_USERNAME = "username";
		
		public static final String REST_PASSWORD = "password";
	}
	
	/* CAS Protocol PREFIX */
	public static final class PREFIX{
		/** Proxy ticket prefix applied to unique ids. */
		public static final String PROXY_TICKET_PREFIX = "PT";
		/**
	     * Prefix generally applied to unique ids generated
	     * by UniqueTicketIdGenerator.
	     */
		public static final String SERVICE_TICKET_PREFIX = "ST";
	    /** The prefix to use when generating an id for a Proxy Granting Ticket. */
		public static final String PROXY_GRANTING_TICKET_PREFIX = "PGT";
	    /** The prefix to use when generating an id for a Proxy Granting Ticket IOU. */
		public static final String PROXY_GRANTING_TICKET_IOU_PREFIX = "PGTIOU";
		
		public static final String TICKET_GRANTING_TICKET_PREFIX = "TGT";
	}
	
	/* CAS Protocol Error Codes. **/
	public static class ERROR_CODE{
		/** Constant representing an invalid request for validation. */
		public static  String INVALID_REQUEST		=	"INVALID_REQUEST";
		/** Constant representing an invalid pgt request. */
		public static String INVALID_REQUEST_PROXY 	= 	"INVALID_REQUEST_PROXY";
		public static String INVALID_TICKET_SPEC	=	"INVALID_TICKET_SPEC";
		/** Constant representing an invalid proxy callback for validation. */
		public static String INVALID_PROXY_CALLBACK	=	"INVALID_PROXY_CALLBACK";
		/** Constant representing an invalid ticket for validation. */
		public static String INVALID_TICKET			=	"INVALID_TICKET";
		public static String INVALID_SERVICE		=	"INVALID_SERVICE";
		public static String INTERNAL_ERROR			=	"INTERNAL_ERROR";
		
		/** Constant representing an invalid service proxy request. */
		public static String UNAUTHORIZED_SERVICE_PROXY	=	"UNAUTHORIZED_SERVICE_PROXY";
		/** Constant representing an invalid service request. */
		public static String UNAUTHORIZED_SERVICE		 = 	"UNAUTHORIZED_SERVICE";
	}
	
	/* CAS Protocol endpoint. **/
	public static class ENDPOINT{
		public static final  String ENDPOINT_BASE = "/authz/cas";
	    /**
	     * Constant representing login.
	     */
		public static final  String ENDPOINT_LOGIN = ENDPOINT_BASE + "/login";
	
	    /**
	     * Constant representing logout.
	     */
		public static final  String ENDPOINT_LOGOUT = ENDPOINT_BASE + "/logout";
	
	    /**
	     * Constant representing proxy validate.
	     */
		public static final  String ENDPOINT_PROXY_VALIDATE = ENDPOINT_BASE + "/proxyValidate";
	
	    /**
	     * Constant representing v3 proxy validate.
	     */
		public static final  String ENDPOINT_PROXY_VALIDATE_V3 = ENDPOINT_BASE + "/p3/proxyValidate";
	
	    /**
	     * Constant representing legacy validate.
	     */
		public static final  String ENDPOINT_VALIDATE = ENDPOINT_BASE + "/validate";
	
	    /**
	     * Constant representing service validate.
	     */
		public static  final String ENDPOINT_SERVICE_VALIDATE = ENDPOINT_BASE + "/serviceValidate";
	
	    /**
	     * Constant representing v3 service validate.
	     */
	    public static final  String ENDPOINT_SERVICE_VALIDATE_V3 = ENDPOINT_BASE + "/p3/serviceValidate";
	
	    /**
	     * Constant representing proxy endpoint.
	     */
	    public static final  String ENDPOINT_PROXY = ENDPOINT_BASE + "/proxy";
	    
	    /**
	     * Constant representing v3 proxy endpoint.
	     */
	    public static final  String ENDPOINT_PROXY_V3 = ENDPOINT_BASE + "/p3/proxy";
	    
	    public static final  String ENDPOINT_SERVICE_TICKET_GRANTING = ENDPOINT_BASE + "/granting";
	    
	    public static final  String ENDPOINT_REST_TICKET_V1 = ENDPOINT_BASE + "/v1/tickets";
	    
	    public static final  String ENDPOINT_REST_USERS_V1 = ENDPOINT_BASE + "/v1/users";
	    
	    
	}
}
