]> source.dussan.org Git - archiva.git/blob
2802f8a070acfa36d8f8e41b1d7de08e8074f0b9
[archiva.git] /
1 package org.apache.archiva.redback.users.ldap.service;
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 org.apache.archiva.redback.common.ldap.user.LdapUser;
23 import org.apache.archiva.redback.components.cache.builder.CacheBuilder;
24 import org.springframework.stereotype.Service;
25
26 import javax.inject.Inject;
27
28 /**
29  * DefaultLdapCacheService
30  *
31  * @author: Maria Odea Ching <oching@apache.org>
32  * @version
33  */
34 @Service
35 public class DefaultLdapCacheService
36     implements LdapCacheService
37 {
38     @Inject
39     private CacheBuilder cacheBuilder;
40
41     // LDAP Users
42
43     /**
44      * @see LdapCacheService#getUser(String)
45      */
46     public LdapUser getUser( String username )
47     {
48         return (LdapUser) cacheBuilder.getCache( "ldapUser" ).get( username );
49     }
50
51     /**
52      * @see LdapCacheService#removeUser(String)
53      */
54     public boolean removeUser( String username )
55     {
56         return ( cacheBuilder.getCache( "ldapUser" ).remove( username ) == null ? false : true );
57     }
58
59     /**
60      * @see LdapCacheService#removeAllUsers()
61      */
62     public void removeAllUsers()
63     {
64         cacheBuilder.getCache( "ldapUser" ).clear();
65     }
66
67     /**
68      * @see LdapCacheService#addUser(org.apache.archiva.redback.common.ldap.user.LdapUser)
69      */
70     public void addUser( LdapUser user )
71     {
72         LdapUser existingUser = (LdapUser) cacheBuilder.getCache( "ldapUser" ).get( user.getUsername() );
73         if( existingUser != null )
74         {
75             removeUser( user.getUsername() );
76         }
77
78         cacheBuilder.getCache( "ldapUser" ).put( user.getUsername(), user );
79     }
80
81     // LDAP UserDn
82
83     /**
84      * @see LdapCacheService#getLdapUserDn(String)
85      */
86     public String getLdapUserDn( String username )
87     {
88         return (String) cacheBuilder.getCache( "ldapUserDn" ).get( username );
89     }
90
91     /**
92      * @see LdapCacheService#removeLdapUserDn(String)
93      */
94     public boolean removeLdapUserDn( String username )
95     {
96         return ( cacheBuilder.getCache( "ldapUserDn" ).remove( username ) == null ? false : true );
97     }
98
99     /**
100      * @see org.apache.archiva.redback.users.ldap.service.LdapCacheService#removeAllLdapUserDn()
101      */
102     public void removeAllLdapUserDn()
103     {
104         cacheBuilder.getCache( "ldapUserDn" ).clear();
105     }
106
107     /**
108      * @see LdapCacheService#addLdapUserDn(String, String) 
109      */
110     public void addLdapUserDn( String username, String userDn )
111     {
112         String existingUserDn = (String) cacheBuilder.getCache( "ldapUserDn" ).get( username );
113         if( existingUserDn != null )
114         {
115             removeUser( username );
116         }
117
118         cacheBuilder.getCache( "ldapUserDn" ).put( username, userDn );    
119     }
120     
121 }