KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > info > jtrac > util > SecurityUtils


1 /*
2  * Copyright 2002-2005 the original author or authors.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */

16
17 package info.jtrac.util;
18
19 import info.jtrac.domain.User;
20 import org.acegisecurity.Authentication;
21 import org.acegisecurity.context.SecurityContextHolder;
22
23 /**
24  * routines to make working with Acegi easier
25  */

26 public class SecurityUtils {
27     
28     /**
29      * routine to refresh the security context only if user == principal
30      * required to do the following
31      * - authorization changes to take effect without having to logoff and re-login
32      * - cosmetic changes (such as change to name) to take effect
33      */

34     public static void refreshSecurityContextIfPrincipal(User user) {
35         Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
36         User u = (User) authentication.getPrincipal();
37         if (u.getId() == user.getId()) {
38             // forces the Acegi Security Context to reload
39
authentication.setAuthenticated(false);
40         }
41     }
42     
43     public static void refreshSecurityContext() {
44         SecurityContextHolder.getContext().getAuthentication().setAuthenticated(false);
45     }
46     
47     public static User getPrincipal() {
48         return (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
49     }
50     
51 }
52
Popular Tags