1   /* Copyright 2004, 2005 Acegi Technology Pty Limited
2    *
3    * Licensed under the Apache License, Version 2.0 (the "License");
4    * you may not use this file except in compliance with the License.
5    * You may obtain a copy of the License at
6    *
7    *     http://www.apache.org/licenses/LICENSE-2.0
8    *
9    * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  
16  package org.acegisecurity;
17  
18  import org.acegisecurity.context.SecurityContextHolder;
19  
20  
21  /***
22   * Represents a secured object.
23   *
24   * @author Ben Alex
25   * @version $Id: TargetObject.java,v 1.8 2005/11/17 00:55:47 benalex Exp $
26   */
27  public class TargetObject implements ITargetObject {
28      //~ Methods ================================================================
29  
30      public Integer computeHashCode(String input) {
31          return new Integer(input.hashCode());
32      }
33  
34      public int countLength(String input) {
35          return input.length();
36      }
37  
38      /***
39       * Returns the lowercase string, followed by security environment
40       * information.
41       *
42       * @param input the message to make lowercase
43       *
44       * @return the lowercase message, a space, the <code>Authentication</code>
45       *         class that was on the <code>SecurityContext</code> at the time
46       *         of method invocation, and a boolean indicating if the
47       *         <code>Authentication</code> object is authenticated or not
48       */
49      public String makeLowerCase(String input) {
50          Authentication auth = SecurityContextHolder.getContext()
51                                                     .getAuthentication();
52  
53          if (auth == null) {
54              return input.toLowerCase() + " Authentication empty";
55          } else {
56              return input.toLowerCase() + " " + auth.getClass().getName() + " "
57              + auth.isAuthenticated();
58          }
59      }
60  
61      /***
62       * Returns the uppercase string, followed by security environment
63       * information.
64       *
65       * @param input the message to make uppercase
66       *
67       * @return the uppercase message, a space, the <code>Authentication</code>
68       *         class that was on the <code>SecurityContext</code> at the time
69       *         of method invocation, and a boolean indicating if the
70       *         <code>Authentication</code> object is authenticated or not
71       */
72      public String makeUpperCase(String input) {
73          Authentication auth = SecurityContextHolder.getContext()
74                                                     .getAuthentication();
75  
76          return input.toUpperCase() + " " + auth.getClass().getName() + " "
77          + auth.isAuthenticated();
78      }
79  
80      /***
81       * Delegates through to the {@link #makeLowerCase(String)} method.
82       *
83       * @param input the message to be made lower-case
84       *
85       */
86      public String publicMakeLowerCase(String input) {
87          return this.makeLowerCase(input);
88      }
89  }