Source code: org/acegisecurity/providers/cas/proxy/RejectProxyTickets.java
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.providers.cas.proxy;
17
18 import java.util.List;
19
20 import org.acegisecurity.AcegiMessageSource;
21 import org.acegisecurity.providers.cas.CasProxyDecider;
22 import org.acegisecurity.providers.cas.ProxyUntrustedException;
23 import org.apache.commons.logging.Log;
24 import org.apache.commons.logging.LogFactory;
25 import org.springframework.beans.factory.InitializingBean;
26 import org.springframework.context.MessageSource;
27 import org.springframework.context.MessageSourceAware;
28 import org.springframework.context.support.MessageSourceAccessor;
29 import org.springframework.util.Assert;
30
31
32 /**
33 * Accepts no proxied requests.
34 *
35 * <P>
36 * This class should be used if only service tickets wish to be accepted (ie no
37 * proxy tickets at all).
38 * </p>
39 */
40 public class RejectProxyTickets implements CasProxyDecider, MessageSourceAware,
41 InitializingBean {
42 //~ Static fields/initializers =============================================
43
44 private static final Log logger = LogFactory.getLog(RejectProxyTickets.class);
45
46 //~ Instance fields ========================================================
47
48 protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor();
49
50 //~ Methods ================================================================
51
52 public void afterPropertiesSet() throws Exception {
53 Assert.notNull(this.messages, "A message source must be set");
54 }
55
56 public void confirmProxyListTrusted(List proxyList)
57 throws ProxyUntrustedException {
58 Assert.notNull(proxyList, "proxyList cannot be null");
59
60 if (proxyList.size() == 0) {
61 // A Service Ticket (not a Proxy Ticket)
62 return;
63 }
64
65 if (logger.isDebugEnabled()) {
66 logger.debug("Proxies are unacceptable; proxy list provided: "
67 + proxyList.toString());
68 }
69
70 throw new ProxyUntrustedException(messages.getMessage(
71 "RejectProxyTickets.reject", "Proxy tickets are rejected"));
72 }
73
74 public void setMessageSource(MessageSource messageSource) {
75 this.messages = new MessageSourceAccessor(messageSource);
76 }
77 }