View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.common.util.security;
17  
18  import org.springframework.security.Authentication;
19  import org.springframework.security.context.SecurityContextHolder;
20  import org.springframework.security.userdetails.UserDetails;
21  
22  public class SecurityUtils {
23  	
24  	/** 
25  	 * This can be used to get the current user id from security context
26  	 * 
27  	 * @return userId
28  	 */
29  	public static String getCurrentUserId() {
30          String principalID=null;
31  		Authentication auth = SecurityContextHolder.getContext().getAuthentication();
32          if(auth!=null){
33          	Object obj = auth.getPrincipal();
34          	if(obj instanceof UserWithId){
35          		//This is actually the user's Principal Id
36          		principalID = ((UserWithId)obj).getUserId();
37          	}
38  //        	else if (obj instanceof UserDetails) {
39  //            	username = ((UserDetails)obj).getUsername();
40  //            } else {
41  //            	username = obj.toString();
42  //            }
43          }
44  		return principalID;
45  	}
46  	
47  	public static String getPrincipalUserName(){
48  		String username = "unknown";
49  		
50  		Authentication auth = SecurityContextHolder.getContext().getAuthentication();
51  		
52  		if (auth != null) {
53  			Object obj = auth.getPrincipal();
54  		    if (obj instanceof UserDetails) {
55  		    	username = ((UserDetails)obj).getUsername();
56  		    } else {
57  		        username = obj.toString();
58  		    }
59  		}
60  
61  	    return username;
62  	}
63  
64  }