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