]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - src/org/argeo/security/core/AbstractSystemExecution.java
2 * Copyright (C) 2007-2012 Argeo GmbH
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org
.argeo
.security
.core
;
18 import javax
.security
.auth
.Subject
;
19 import javax
.security
.auth
.login
.LoginContext
;
20 import javax
.security
.auth
.login
.LoginException
;
22 import org
.apache
.commons
.logging
.Log
;
23 import org
.apache
.commons
.logging
.LogFactory
;
24 import org
.argeo
.ArgeoException
;
26 /** Provides base method for executing code with system authorization. */
27 public abstract class AbstractSystemExecution
{
28 private final static Log log
= LogFactory
29 .getLog(AbstractSystemExecution
.class);
30 private final Subject subject
= new Subject();
32 private final String loginModule
= "SYSTEM";
35 * Authenticate the calling thread to the underlying
36 * {@link AuthenticationManager}
38 protected void authenticateAsSystem() {
40 LoginContext lc
= new LoginContext(loginModule
, subject
);
42 } catch (LoginException e
) {
43 throw new ArgeoException("Cannot login as system", e
);
45 if (log
.isTraceEnabled())
46 log
.trace("System authenticated");
49 protected void deauthenticateAsSystem() {
51 LoginContext lc
= new LoginContext(loginModule
, subject
);
53 } catch (LoginException e
) {
54 throw new ArgeoException("Cannot logout as system", e
);
58 protected Subject
getSubject() {