]> source.dussan.org Git - archiva.git/blob
4e818e5368921da5fdc1c734babe598d210e8bd8
[archiva.git] /
1 package org.codehaus.redback.integration.interceptor;
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.ArrayList;
23 import java.util.List;
24
25 import org.apache.archiva.redback.rbac.Resource;
26
27 /**
28  * SecureActionBundle:
29  *
30  * @author: Jesse McConnell <jesse@codehaus.org>
31  * @version: $Id$
32  */
33 public class SecureActionBundle
34 {
35     private boolean requiresAuthentication = false;
36
37     private List<AuthorizationTuple> authorizationTuples = new ArrayList<AuthorizationTuple>();
38
39     public static final SecureActionBundle OPEN;
40
41     public static final SecureActionBundle AUTHONLY;
42
43     static
44     {
45         OPEN = new SecureActionBundle();
46         AUTHONLY = new SecureActionBundle();
47         AUTHONLY.setRequiresAuthentication( true );
48     }
49
50     /**
51      * Add an authorization tuple
52      *
53      * @param operation
54      * @param resource
55      * @throws SecureActionException
56      */
57     public void addRequiredAuthorization( String operation, String resource )
58         throws SecureActionException
59     {
60         if ( operation != null && resource != null )
61         {
62             authorizationTuples.add( new AuthorizationTuple( operation, resource ) );
63         }
64         else
65         {
66             throw new SecureActionException( "operation and resource are required to be non-null" );
67         }
68     }
69
70     /**
71      * add an authorization tuple, assuming the resource part of it is Resource.GLOBAL
72      *
73      * @param operation
74      * @throws SecureActionException
75      */
76     public void addRequiredAuthorization( String operation )
77         throws SecureActionException
78     {
79         if ( operation != null )
80         {
81             authorizationTuples.add( new AuthorizationTuple( operation, Resource.GLOBAL ) );
82         }
83         else
84         {
85             throw new SecureActionException( "operation is required to be non-null" );
86         }
87     }
88
89     public List<AuthorizationTuple> getAuthorizationTuples()
90     {
91         return authorizationTuples;
92     }
93
94     public boolean requiresAuthentication()
95     {
96         return requiresAuthentication;
97     }
98
99     public void setRequiresAuthentication( boolean requiresAuthentication )
100     {
101         this.requiresAuthentication = requiresAuthentication;
102     }
103
104     public static class AuthorizationTuple
105     {
106         private String operation;
107
108         private String resource;
109
110         public AuthorizationTuple( String operation, String resource )
111         {
112             this.operation = operation;
113             this.resource = resource;
114         }
115
116         public String getOperation()
117         {
118             return operation;
119         }
120
121         public String getResource()
122         {
123             return resource;
124         }
125
126
127         public String toString()
128         {
129             return "AuthorizationTuple[" + operation + "," + resource + "]";
130         }
131     }
132 }