All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.milton.resource.OAuth2Resource Maven / Gradle / Ivy

The newest version!
/*
 * 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.Map;

/**
 * @author Lee YOU
 */
public interface OAuth2Resource extends Resource {

    /**
     * Called when an oauth2 login response has been received, with details
     * received from the remote server. The method should return an application
     * specific object representing the user if one exists OR if the application
     * chooses to create one.
     * 

* Or return null to indicate that this resource cannot authenticate the * request. In that case the AuthenticationService may continue looking for * other authentication providers which are able to authenticate the * request. *

* A typical workflow is that an OAuth response will be received, the * current user will be authenticated from the CookieAuthenticationHandler, * and the application will then choose to link the oauth credentials to the * current user. Subsequently the user is then able to authenticat with * oauth. * * @param profile - the details about the current user as provided by the * remote authentication server * @return an object which represents the current principal, or null to * reject the login */ Object authenticate(OAuth2ProfileDetails profile); Map getOAuth2Providers(); /** * This contains the information about the authenticated profile */ class OAuth2ProfileDetails { private String tokenLocation; private String providerId; private String accessToken; private Long expiresIn; private String refreshToken; private String code; private String returnUrl; // this is the local page to redirect to after authentication private Map details; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getTokenLocation() { return tokenLocation; } public void setTokenLocation(String tokenLocation) { this.tokenLocation = tokenLocation; } public String getProviderId() { return providerId; } public void setProviderId(String providerId) { this.providerId = providerId; } public String getAccessToken() { return accessToken; } public void setAccessToken(String accessToken) { this.accessToken = accessToken; } public Long getExpiresIn() { return expiresIn; } public void setExpiresIn(Long expiresIn) { this.expiresIn = expiresIn; } public String getRefreshToken() { return refreshToken; } public void setRefreshToken(String refreshToken) { this.refreshToken = refreshToken; } public Map getDetails() { return details; } public void setDetails(Map details) { this.details = details; } public String getReturnUrl() { return returnUrl; } public void setReturnUrl(String returnUrl) { this.returnUrl = returnUrl; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy