]> source.dussan.org Git - archiva.git/blob
5aeeedd9f11ba32ca04da62183c36bd930bf4f23
[archiva.git] /
1 package org.apache.maven.archiva.security;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *  http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import java.util.Map;
23
24 import org.apache.maven.archiva.security.ArchivaRoleConstants;
25 import org.codehaus.plexus.redback.system.SecuritySession;
26 import org.codehaus.plexus.redback.system.SecuritySystemConstants;
27 import org.codehaus.plexus.redback.users.User;
28 import org.codehaus.plexus.registry.Registry;
29
30 /**
31  * ArchivaXworkUser 
32  *
33  * @version $Id$
34  * 
35  * @plexus.component role="org.apache.maven.archiva.security.ArchivaXworkUser"
36  */
37 public class ArchivaXworkUser
38 {
39     /**
40      * @plexus.requirement role-hint="commons-configuration"
41      */
42     private Registry registry;
43     
44     private static final String KEY = "org.codehaus.plexus.redback";
45     
46     private static String guest;
47             
48     public String getActivePrincipal( Map<String, Object> sessionMap )
49     {   
50         if ( sessionMap == null )
51         {
52             return getGuest();
53         }
54
55         SecuritySession securitySession =
56             (SecuritySession) sessionMap.get( SecuritySystemConstants.SECURITY_SESSION_KEY );
57
58         if ( securitySession == null )
59         {
60             securitySession = (SecuritySession) sessionMap.get( SecuritySession.ROLE );
61         }
62
63         if ( securitySession == null )
64         {
65             return getGuest();
66         }
67
68         User user = securitySession.getUser();        
69         if ( user == null )
70         {
71             return getGuest();
72         }
73
74         return (String) user.getPrincipal();
75     }    
76    
77     public String getGuest()
78     {
79         if( guest == null || "".equals( guest ) )
80         {
81             Registry subset = registry.getSubset( KEY );
82             guest = subset.getString( "redback.default.guest", ArchivaRoleConstants.PRINCIPAL_GUEST );
83         }
84         
85         return guest;
86     }
87     
88     public void setGuest( String guesT )
89     {
90         guest = guesT;
91     }
92 }