/* * Copyright 2015 McEvoy Software Ltd. * * 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 io.milton.resource; import java.util.Collection; /** * * @author brad */ public interface OAuth2Provider { /** * Identifies the provider to this application, ie 'facebook' or 'twitter' or 'myownserver' * * @return */ String getProviderId(); /** * This is the URL we will redirect the user to, where they will enter their * username and password into the remote application (if required) and authorise * our app * * @return */ String getAuthLocation(); String getClientId(); String getClientSecret(); String getRedirectURI(); /** * This is the URL we will call direct (server to server) to get an access token * from the access code received in the redirect back to our site from the oauth server * * @return */ String getTokenLocation(); String getProfileLocation(); /** * Returns a list of named permission scopes, such as "email", "profile", etc, * which determine what this client is permitted to do * * @return */ Collection<String> getPermissionScopes(); }