001 package org.jboss.dna.graph; 002 003 /** 004 * A security context provides a pluggable means to support disparate authentication and authorization 005 * mechanisms that specify the user name and roles. 006 * <p> 007 * A security context should only be associated with the execution context <b>after</b> authentication has occurred. 008 * </p> 009 */ 010 public interface SecurityContext { 011 012 /** 013 * Returns the authenticated user's name 014 * 015 * @return the authenticated user's name 016 */ 017 String getUserName(); 018 019 /** 020 * Returns whether the authenticated user has the given role. 021 * 022 * @param roleName the name of the role to check 023 * @return true if the user has the role and is logged in; false otherwise 024 */ 025 boolean hasRole( String roleName ); 026 027 /** 028 * Logs the user out of the authentication mechanism. 029 * <p> 030 * For some authentication mechanisms, this will be implemented as a no-op. 031 * </p> 032 */ 033 void logout(); 034 035 }