001/* 002 * oauth2-oidc-sdk 003 * 004 * Copyright 2012-2016, Connect2id Ltd and contributors. 005 * 006 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use 007 * this file except in compliance with the License. You may obtain a copy of the 008 * License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software distributed 013 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 014 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 015 * specific language governing permissions and limitations under the License. 016 */ 017 018package com.nimbusds.oauth2.sdk.as; 019 020 021import java.net.URI; 022 023import net.minidev.json.JSONObject; 024 025 026/** 027 * Read-only OAuth 2.0 Authorisation Server (AS) endpoint metadata. 028 * 029 * <p>Related specifications: 030 * 031 * <ul> 032 * <li>OAuth 2.0 Authorization Server Metadata (RFC 8414) 033 * <li>OAuth 2.0 Mutual TLS Client Authentication and Certificate Bound 034 * Access Tokens (RFC 8705) 035 * <li>OAuth 2.0 Pushed Authorization Requests (RFC 9126) 036 * <li>OAuth 2.0 Device Authorization Grant (RFC 8628) 037 * <li>OpenID Connect Client Initiated Backchannel Authentication Flow - 038 * Core 1.0 039 * <li>OpenID Connect Federation 1.0 040 * </ul> 041 */ 042public interface ReadOnlyAuthorizationServerEndpointMetadata { 043 044 045 /** 046 * Gets the authorisation endpoint URI. Corresponds the 047 * {@code authorization_endpoint} metadata field. 048 * 049 * @return The authorisation endpoint URI, {@code null} if not 050 * specified. 051 */ 052 URI getAuthorizationEndpointURI(); 053 054 055 /** 056 * Gets the token endpoint URI. Corresponds the {@code token_endpoint} 057 * metadata field. 058 * 059 * @return The token endpoint URI, {@code null} if not specified. 060 */ 061 URI getTokenEndpointURI(); 062 063 064 /** 065 * Gets the client registration endpoint URI. Corresponds to the 066 * {@code registration_endpoint} metadata field. 067 * 068 * @return The client registration endpoint URI, {@code null} if not 069 * specified. 070 */ 071 URI getRegistrationEndpointURI(); 072 073 074 /** 075 * Gets the token introspection endpoint URI. Corresponds to the 076 * {@code introspection_endpoint} metadata field. 077 * 078 * @return The token introspection endpoint URI, {@code null} if not 079 * specified. 080 */ 081 URI getIntrospectionEndpointURI(); 082 083 084 /** 085 * Gets the token revocation endpoint URI. Corresponds to the 086 * {@code revocation_endpoint} metadata field. 087 * 088 * @return The token revocation endpoint URI, {@code null} if not 089 * specified. 090 */ 091 URI getRevocationEndpointURI(); 092 093 094 /** 095 * Gets the request object endpoint. Corresponds to the 096 * {@code request_object_endpoint} metadata field. 097 * 098 * @return The request object endpoint, {@code null} if not specified. 099 */ 100 @Deprecated 101 URI getRequestObjectEndpoint(); 102 103 104 /** 105 * Gets the pushed authorisation request endpoint. Corresponds to the 106 * {@code pushed_authorization_request_endpoint} metadata field. 107 * 108 * @return The pushed authorisation request endpoint, {@code null} if 109 * not specified. 110 */ 111 URI getPushedAuthorizationRequestEndpointURI(); 112 113 114 /** 115 * Gets the device authorization endpoint URI. Corresponds the 116 * {@code device_authorization_endpoint} metadata field. 117 * 118 * @return The device authorization endpoint URI, {@code null} if not 119 * specified. 120 */ 121 URI getDeviceAuthorizationEndpointURI(); 122 123 124 /** 125 * Gets the back-channel authentication endpoint URI. Corresponds the 126 * {@code backchannel_authentication_endpoint} metadata field. 127 * 128 * @return The back-channel authentication endpoint URI, {@code null} 129 * if not specified. 130 */ 131 URI getBackChannelAuthenticationEndpointURI(); 132 133 134 /** 135 * Gets the back-channel authentication endpoint URI. Corresponds the 136 * {@code backchannel_authentication_endpoint} metadata field. 137 * 138 * @deprecated Use {@link #getBackChannelAuthenticationEndpointURI} 139 * instead. 140 * 141 * @return The back-channel authentication endpoint URI, {@code null} 142 * if not specified. 143 */ 144 @Deprecated 145 URI getBackChannelAuthenticationEndpoint(); 146 147 148 /** 149 * Gets the federation registration endpoint URI. Corresponds to the 150 * {@code federation_registration_endpoint} metadata field. 151 * 152 * @return The federation registration endpoint URI, {@code null} if 153 * not specified. 154 */ 155 URI getFederationRegistrationEndpointURI(); 156 157 158 /** 159 * Returns the JSON object representation of the metadata. 160 * 161 * @return The JSON object. 162 */ 163 JSONObject toJSONObject(); 164}