aboutsummaryrefslogtreecommitdiffstats
path: root/upstream/odl-aaa-moon/aaa/aaa-shiro/src/main/java/org/opendaylight/aaa/shiro/filters/AAAFilter.java
blob: 47dd95499b8813545692f61849d211f2bad7199c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
 * Copyright (c) 2015 Brocade Communications Systems, Inc. and others.  All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/epl-v10.html
 */

package org.opendaylight.aaa.shiro.filters;

import org.apache.shiro.web.servlet.ShiroFilter;
import org.opendaylight.aaa.shiro.ServiceProxy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * The RESTCONF AAA JAX-RS 1.X Web Filter. This class is also responsible for
 * delivering debug information; to enable these debug statements, please issue
 * the following in the karaf shell:
 *
 * <code>log:set debug org.opendaylight.aaa.shiro.filters.AAAFilter</code>
 *
 * @author Ryan Goulding (ryandgoulding@gmail.com)
 * @see <code>javax.servlet.Filter</code>
 * @see <code>org.apache.shiro.web.servlet.ShiroFilter</code>
 */
public class AAAFilter extends ShiroFilter {

    private static final Logger LOG = LoggerFactory.getLogger(AAAFilter.class);

    public AAAFilter() {
        super();
        final String DEBUG_MESSAGE = "Creating the AAAFilter";
        LOG.debug(DEBUG_MESSAGE);
    }

    /*
     * (non-Javadoc)
     *
     * Adds context clues that aid in debugging. Also initializes the enable
     * status to correspond with
     * <code>ServiceProxy.getInstance.getEnabled()</code>.
     *
     * @see org.apache.shiro.web.servlet.ShiroFilter#init()
     */
    @Override
    public void init() throws Exception {
        super.init();
        final String DEBUG_MESSAGE = "Initializing the AAAFilter";
        LOG.debug(DEBUG_MESSAGE);
        // sets the filter to the startup value. Because of non-determinism in
        // bundle loading, this passes an instance of itself along so that if
        // the
        // enable status changes, then AAAFilter enable status is changed.
        setEnabled(ServiceProxy.getInstance().getEnabled(this));
    }

    /*
     * (non-Javadoc)
     *
     * Adds context clues to aid in debugging whether the filter is enabled.
     *
     * @see
     * org.apache.shiro.web.servlet.OncePerRequestFilter#setEnabled(boolean)
     */
    @Override
    public void setEnabled(boolean enabled) {
        super.setEnabled(enabled);
        final String DEBUG_MESSAGE = "Setting AAAFilter enabled to " + enabled;
        LOG.debug(DEBUG_MESSAGE);
    }
}