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

org.valkyriercp.security.ApplicationSecurityManager Maven / Gradle / Ivy

There is a newer version: 1.3
Show newest version
package org.valkyriercp.security;

import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;

/**
 * This interface defines the operations required of an Application Security Manager for
 * the RCP framework. The security manager is responsible for handling login and logout
 * requests, interacting with the {@link org.springframework.security.AuthenticationManager} that
 * will perform the actual user authentication, and firing the events associated with
 * application security lifecycle. See {@link ClientSecurityEvent} and its subclasses.
 * 

* The Security Manager is available as an application service via * {@link org.springframework.richclient.application.ApplicationServices#getSecurityManager}. *

* See {@link SecurityAwareConfigurer} for more details on how to configure components for * automatic notification of security events. * * @author Larry Streepy * @see AuthenticationAware * @see LoginAware * @see SecurityAwareConfigurer * */ public interface ApplicationSecurityManager { /** * Process a login attempt and fire all related events. If the authentication fails, * then a {@link AuthenticationFailedEvent} is published and the exception is * rethrown. If the authentication succeeds, then an {@link AuthenticationEvent} is * published, followed by a {@link LoginEvent}. * * @param authentication token to use for the login attempt * @return Authentication token resulting from a successful call to * {@link AuthenticationManager#authenticate(org.springframework.security.Authentication)}. * @throws AuthenticationException If the authentication attempt fails */ public Authentication doLogin(Authentication authentication) throws AuthenticationException; /** * Return if a user is currently logged in, meaning that a previous call to doLogin * resulted in a valid authentication request. * @return true if a user is logged in */ public boolean isUserLoggedIn(); /** * Get the authentication token for the currently logged in user. * @return authentication token, null if not logged in */ public Authentication getAuthentication(); /** * Determine if the currently authenticated user has the role provided. * @param role to check * @return true if the user has the role requested */ public boolean isUserInRole(String role); /** * Perform a logout. Set the current authentication token to null (in both the * per-thread security context and the global context), then publish an * {@link AuthenticationEvent} followed by a {@link LogoutEvent}. * @return Authentication token that was in place prior to the logout. */ public Authentication doLogout(); /** * Set the authentication manager to use. * @param authenticationManager instance to use for authentication requests */ public void setAuthenticationManager(AuthenticationManager authenticationManager); /** * Get the authentication manager in use. * @return authenticationManager instance used for authentication requests */ public AuthenticationManager getAuthenticationManager(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy