--- /dev/null
+package com.pentila.evalcomp.utilities.auth;
+
+import java.util.Collection;
+import java.util.HashSet;
+
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.GrantedAuthority;
+
+public class AuthenticationWrapper implements Authentication {
+
+ private Authentication original;
+ private Collection<GrantedAuthority> extraRoles;
+ public AuthenticationWrapper( Authentication original, Collection<GrantedAuthority> extraRoles )
+ {
+ this.original = original;
+ this.extraRoles = extraRoles;
+ }
+ public Collection<GrantedAuthority> getAuthorities()
+ {
+ Collection originalRoles = original.getAuthorities();
+ Collection<GrantedAuthority> roles = new HashSet<GrantedAuthority>();
+ roles.addAll(originalRoles);
+ if (extraRoles != null){
+ roles.addAll(extraRoles);
+ }
+ return roles;
+ }
+ public String getName() { return original.getName(); }
+ public Object getCredentials() { return original.getCredentials(); }
+ public Object getDetails() { return original.getDetails(); }
+ public Object getPrincipal() { return original.getPrincipal(); }
+ public boolean isAuthenticated() { return original.isAuthenticated(); }
+ public void setAuthenticated( boolean isAuthenticated ) throws IllegalArgumentException
+ {
+ original.setAuthenticated( isAuthenticated );
+ }
+ public Authentication getOriginal() {
+ return original;
+ }
+
+
+
+}