File Source: RollerUserDetailsService.java
/*
P/P * Method: org.apache.roller.weblogger.ui.core.security.RollerUserDetailsService__static_init
*/
1 package org.apache.roller.weblogger.ui.core.security;
2
3 import java.util.Iterator;
4 import org.acegisecurity.GrantedAuthority;
5 import org.acegisecurity.GrantedAuthorityImpl;
6 import org.acegisecurity.userdetails.UserDetails;
7 import org.acegisecurity.userdetails.UserDetailsService;
8 import org.acegisecurity.userdetails.UsernameNotFoundException;
9 import org.apache.roller.weblogger.WebloggerException;
10 import org.apache.roller.weblogger.business.Weblogger;
11 import org.apache.roller.weblogger.business.WebloggerFactory;
12 import org.apache.roller.weblogger.business.UserManager;
13 import org.apache.roller.weblogger.pojos.UserRole;
14 import org.apache.roller.weblogger.pojos.User;
15 import org.springframework.dao.DataAccessException;
16 import org.springframework.dao.DataRetrievalFailureException;
17
18 /**
19 * Acegi user details service implemented using Weblogger API.
20 */
/*
P/P * Method: void org.apache.roller.weblogger.ui.core.security.RollerUserDetailsService()
*/
21 public class RollerUserDetailsService implements UserDetailsService {
22
23 public UserDetails loadUserByUsername(String userName)
24 throws UsernameNotFoundException, DataAccessException {
25
/*
P/P * Method: UserDetails loadUserByUsername(String)
*
* Presumptions:
* init'ed(java.lang.Boolean.TRUE)
* java.util.Iterator:next(...)@43 != null
* java.util.Set:size(...)@39 >= 1
* org.apache.roller.weblogger.business.UserManager:getUserByUserName(...)@30 != null
* org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@29 != null
* ...
*
* Postconditions:
* return_value == &new User(loadUserByUsername#6)
* new User(loadUserByUsername#6) num objects == 1
*
* Test Vectors:
* java.util.Iterator:hasNext(...)@42: {0}, {1}
*/
26 User userData = null;
27 try {
28 Weblogger roller = WebloggerFactory.getWeblogger();
29 UserManager umgr = roller.getUserManager();
30 userData = umgr.getUserByUserName(userName, Boolean.TRUE);
31 } catch (WebloggerException ex) {
32 throw new DataRetrievalFailureException("ERROR in user lookup", ex);
33 }
34
35 if (userData == null) {
36 throw new UsernameNotFoundException("ERROR no user: " + userName);
37 }
38
39 GrantedAuthority[] authorities =
40 new GrantedAuthorityImpl[userData.getRoles().size()];
41 int i = 0;
42 for (Iterator it = userData.getRoles().iterator(); it.hasNext();) {
43 UserRole role = (UserRole)it.next();
+ 44 authorities[i++] = new GrantedAuthorityImpl(role.getRole());
45 }
46
47 return new org.acegisecurity.userdetails.User(
48 userData.getUserName(), userData.getPassword(), true, authorities);
49 }
50
51 }
SofCheck Inspector Build Version : 2.18479
| RollerUserDetailsService.java |
2009-Jan-02 14:25:12 |
| RollerUserDetailsService.class |
2009-Sep-04 03:12:44 |