public static Object get(Object key) {
        if (LOGGER.isTraceEnabled()) {
            String msg = "get() - in thread [" + Thread.currentThread().getName() + "]";
            LOGGER.trace(msg);
        }

        Object value = getValue(key);
        if ((value != null) && LOGGER.isTraceEnabled()) {
            String msg = "Retrieved value of type [" + value.getClass().getName() + "] for key ["
                    + key + "] " + "bound to thread [" + Thread.currentThread().getName() + "]";
            LOGGER.trace(msg);
        }
        return value;
    }
Returns the object for the specified <code>key</code> that is bound to
the current thread.

@param key the key that identifies the value to return
@return the object keyed by <code>key</code> or <code>null</code> if
no value exists for the specified <code>key</code>
core/src/main/java/org/apache/shiro/util/ThreadContext.java