pebbleuserdetails.java

### File Source: pebbleuserdetails.java

             /*
        P/P   *  Method: net.sourceforge.pebble.security.PebbleUserDetails__static_init
              */
         1  package net.sourceforge.pebble.security;
         2
         3  import net.sourceforge.pebble.Constants;
         4  import org.acegisecurity.GrantedAuthority;
         5  import org.acegisecurity.GrantedAuthorityImpl;
         6  import org.acegisecurity.userdetails.UserDetails;
         7
         8  import java.util.HashSet;
         9  import java.util.Set;
        10  import java.util.HashMap;
        11  import java.util.Map;
        12
        13  /**
        14   * Extension of the Acegi User class that adds additional information
        15   * such as the user's e-mail address.
        16   *
        17   * @author    Simon Brown
        18   */
        19  public class PebbleUserDetails implements UserDetails {
        20
        21    private String username;
        22    private String password;
        23
        24    /** the name */
        25    private String name;
        26
        27    /** the e-mail address */
        28    private String emailAddress;
        29
        30    /** the website */
        31    private String website;
        32
        33    /** the profile */
        34    private String profile;
        35
        36    /** the user's preferences */
        37    private Map<String,String> preferences = new HashMap<String,String>();
        38
        39    private GrantedAuthority grantedAuthories[];
        40
        41    private boolean detailsUpdateable = true;
        42
               /*
        P/P     *  Method: void net.sourceforge.pebble.security.PebbleUserDetails()
                *
                *  Postconditions:
                *    this.detailsUpdateable == 1
                *    new HashMap(PebbleUserDetails#1) num objects == 1
                *    this.preferences == &new HashMap(PebbleUserDetails#1)
                */
        43    public PebbleUserDetails() {
        44    }
        45
               /*
        P/P     *  Method: void net.sourceforge.pebble.security.PebbleUserDetails(String, String, String, String, String, String[], Map, bool)
                *
                *  Preconditions:
                *    (soft) roles.length <= 232-1
                *    (soft) roles[...] != null
                *
                *  Postconditions:
                *    this.detailsUpdateable == detailsUpdateable
                *    init'ed(this.detailsUpdateable)
                *    this.emailAddress == emailAddress
                *    init'ed(this.emailAddress)
                *    init'ed(this.grantedAuthories)
                *    this.name == name
                *    init'ed(this.name)
                *    this.preferences == preferences
                *    init'ed(this.preferences)
                *    this.profile == profile
                *    ...
                */
        46    public PebbleUserDetails(String username, String name, String emailAddress, String website, String profile, String roles[], Map<String,String> preferences, boolean detailsUpdateable) {
        47      this.username = username;
        48      this.name = name;
        49      this.emailAddress = emailAddress;
        50      this.website = website;
        51      this.profile = profile;
        52      this.grantedAuthories = createGrantedAuthorities(roles);
        53      this.preferences = preferences;
        54      this.detailsUpdateable = detailsUpdateable;
        55    }
        56
               /*
        P/P     *  Method: void net.sourceforge.pebble.security.PebbleUserDetails(String, String, String, String, String, String, String[], Map, bool)
                *
                *  Preconditions:
                *    (soft) roles.length <= 232-1
                *    (soft) roles[...] != null
                *
                *  Postconditions:
                *    this.detailsUpdateable == detailsUpdateable
                *    init'ed(this.detailsUpdateable)
                *    this.emailAddress == emailAddress
                *    init'ed(this.emailAddress)
                *    init'ed(this.grantedAuthories)
                *    this.name == name
                *    init'ed(this.name)
                *    this.password == password
                *    init'ed(this.password)
                *    this.preferences == preferences
                *    ...
                */
        57    public PebbleUserDetails(String username, String password, String name, String emailAddress, String website, String profile, String roles[], Map<String,String> preferences, boolean detailsUpdateable) {
        58      this.username = username;
        59      this.password = password;
        60      this.name = name;
        61      this.emailAddress = emailAddress;
        62      this.website = website;
        63      this.profile = profile;
        64      this.grantedAuthories = createGrantedAuthorities(roles);
        65      this.preferences = preferences;
        66      this.detailsUpdateable = detailsUpdateable;
        67    }
        68
        69    public String getUsername() {
                 /*
        P/P       *  Method: String getUsername()
                  *
                  *  Preconditions:
                  *    init'ed(this.username)
                  *
                  *  Postconditions:
                  *    return_value == this.username
                  *    init'ed(return_value)
                  */
        70      return this.username;
        71    }
        72
        73    public String getPassword() {
                 /*
        P/P       *  Method: String getPassword()
                  *
                  *  Preconditions:
                  *    init'ed(this.password)
                  *
                  *  Postconditions:
                  *    return_value == this.password
                  *    init'ed(return_value)
                  */
        74      return this.password;
        75    }
        76
        77    public boolean isAccountNonExpired() {
                 /*
        P/P       *  Method: bool isAccountNonExpired()
                  *
                  *  Postconditions:
                  *    return_value == 1
                  */
        78      return true;
        79    }
        80
        81    public boolean isAccountNonLocked() {
                 /*
        P/P       *  Method: bool isAccountNonLocked()
                  *
                  *  Postconditions:
                  *    return_value == 1
                  */
        82      return true;
        83    }
        84
        85    public boolean isCredentialsNonExpired() {
                 /*
        P/P       *  Method: bool isCredentialsNonExpired()
                  *
                  *  Postconditions:
                  *    return_value == 1
                  */
        86      return true;
        87    }
        88
        89    public boolean isEnabled() {
                 /*
        P/P       *  Method: bool isEnabled()
                  *
                  *  Postconditions:
                  *    return_value == 1
                  */
        90      return true;
        91    }
        92
        93    /**
        94     * Gets the name.
        95     *
        96     * @return  a String
        97     */
        98    public String getName() {
                 /*
        P/P       *  Method: String getName()
                  *
                  *  Preconditions:
                  *    init'ed(this.name)
                  *
                  *  Postconditions:
                  *    return_value == this.name
                  *    init'ed(return_value)
                  */
        99      return name;
       100    }
       101
       102    /**
       103     * Gets the e-mail address.
       104     *
       105     * @return  a String
       106     */
       107    public String getEmailAddress() {
                 /*
        P/P       *  Method: String getEmailAddress()
                  *
                  *  Preconditions:
                  *    init'ed(this.emailAddress)
                  *
                  *  Postconditions:
                  *    return_value == this.emailAddress
                  *    init'ed(return_value)
                  */
       108      return emailAddress;
       109    }
       110
       111    /**
       112     * Gets the website.
       113     *
       114     * @return  a String
       115     */
       116    public String getWebsite() {
                 /*
        P/P       *  Method: String getWebsite()
                  *
                  *  Preconditions:
                  *    init'ed(this.website)
                  *
                  *  Postconditions:
                  *    return_value == this.website
                  *    init'ed(return_value)
                  */
       117      return website;
       118    }
       119
       120    /**
       121     * Gets the user's profile.
       122     *
       123     * @return  a String
       124     */
       125    public String getProfile() {
                 /*
        P/P       *  Method: String getProfile()
                  *
                  *  Preconditions:
                  *    init'ed(this.profile)
                  *
                  *  Postconditions:
                  *    return_value == this.profile
                  *    init'ed(return_value)
                  */
       126      return this.profile;
       127    }
       128
       129    public GrantedAuthority[] getAuthorities() {
                 /*
        P/P       *  Method: GrantedAuthority[] getAuthorities()
                  *
                  *  Preconditions:
                  *    init'ed(this.grantedAuthories)
                  *
                  *  Postconditions:
                  *    return_value == this.grantedAuthories
                  *    init'ed(return_value)
                  */
       130      return this.grantedAuthories;
       131    }
       132
       133    public String[] getRoles() {
                 /*
        P/P       *  Method: String[] getRoles()
                  *
                  *  Preconditions:
                  *    this.grantedAuthories != null
                  *    this.grantedAuthories.length <= 232-1
                  *    (soft) this.grantedAuthories[...] != null
                  *
                  *  Postconditions:
                  *    return_value == &new String[](getRoles#1)
                  *    new String[](getRoles#1) num objects == 1
                  *    return_value.length == this.grantedAuthories.length
                  *    return_value.length <= 232-1
                  *    possibly_updated(return_value[...])
                  */
       134      GrantedAuthority[] authorities = getAuthorities();
       135      String[] roles = new String[authorities.length];
       136      for (int i = 0; i < authorities.length; i++) {
       137        roles[i] = authorities[i].getAuthority();
       138      }
       139
       140      return roles;
       141    }
       142
       143    public String getRolesAsString() {
                 /*
        P/P       *  Method: String getRolesAsString()
                  *
                  *  Preconditions:
                  *    this.grantedAuthories != null
                  *    this.grantedAuthories.length <= 232-1
                  *    (soft) this.grantedAuthories[...] != null
                  *
                  *  Postconditions:
                  *    return_value != null
                  */
       144      StringBuffer buf = new StringBuffer();
       145
       146      GrantedAuthority[] authorities = getAuthorities();
       147      for (int i = 0; i < authorities.length; i++) {
       148        buf.append(authorities[i].getAuthority());
       149        if (i < authorities.length) {
       150          buf.append(",");
       151        }
       152      }
       153
       154      return buf.toString();
       155    }
       156
       157    public boolean isUserInRole(String role) {
                 /*
        P/P       *  Method: bool isUserInRole(String)
                  *
                  *  Preconditions:
                  *    init'ed(this.grantedAuthories)
                  *    (soft) this.grantedAuthories.length <= 232-1
                  *    (soft) this.grantedAuthories[...] != null
                  *
                  *  Presumptions:
                  *    org.acegisecurity.GrantedAuthority:getAuthority(...)@161 != null
                  *
                  *  Postconditions:
                  *    init'ed(return_value)
                  *
                  *  Test Vectors:
                  *    this.grantedAuthories: Addr_Set{null}, Inverse{null}
                  *    java.lang.String:equals(...)@161: {0}, {1}
                  */
       158      GrantedAuthority[] authorities = getAuthorities();
       159      if (authorities != null) {
       160        for (GrantedAuthority authority : authorities) {
       161          if (authority.getAuthority().equals(role)) {
       162            return true;
       163          }
       164        }
       165      }
       166      return false;
       167    }
       168
       169    public boolean isBlogAdmin() {
                 /*
        P/P       *  Method: bool isBlogAdmin()
                  *
                  *  Presumptions:
                  *    init'ed(net.sourceforge.pebble.Constants.BLOG_ADMIN_ROLE)
                  *
                  *  Preconditions:
                  *    init'ed(this.grantedAuthories)
                  *    (soft) this.grantedAuthories.length <= 232-1
                  *    (soft) this.grantedAuthories[...] != null
                  *
                  *  Postconditions:
                  *    init'ed(return_value)
                  */
       170      return isUserInRole(Constants.BLOG_ADMIN_ROLE);
       171    }
       172
       173    public boolean isBlogOwner() {
                 /*
        P/P       *  Method: bool isBlogOwner()
                  *
                  *  Presumptions:
                  *    init'ed(net.sourceforge.pebble.Constants.BLOG_OWNER_ROLE)
                  *
                  *  Preconditions:
                  *    init'ed(this.grantedAuthories)
                  *    (soft) this.grantedAuthories.length <= 232-1
                  *    (soft) this.grantedAuthories[...] != null
                  *
                  *  Postconditions:
                  *    init'ed(return_value)
                  */
       174      return isUserInRole(Constants.BLOG_OWNER_ROLE);
       175    }
       176
       177    public boolean isBlogPublisher() {
                 /*
        P/P       *  Method: bool isBlogPublisher()
                  *
                  *  Presumptions:
                  *    init'ed(net.sourceforge.pebble.Constants.BLOG_PUBLISHER_ROLE)
                  *
                  *  Preconditions:
                  *    init'ed(this.grantedAuthories)
                  *    (soft) this.grantedAuthories.length <= 232-1
                  *    (soft) this.grantedAuthories[...] != null
                  *
                  *  Postconditions:
                  *    init'ed(return_value)
                  */
       178      return isUserInRole(Constants.BLOG_PUBLISHER_ROLE);
       179    }
       180
       181    public boolean isBlogContributor() {
                 /*
        P/P       *  Method: bool isBlogContributor()
                  *
                  *  Presumptions:
                  *    init'ed(net.sourceforge.pebble.Constants.BLOG_CONTRIBUTOR_ROLE)
                  *
                  *  Preconditions:
                  *    init'ed(this.grantedAuthories)
                  *    (soft) this.grantedAuthories.length <= 232-1
                  *    (soft) this.grantedAuthories[...] != null
                  *
                  *  Postconditions:
                  *    init'ed(return_value)
                  */
       182      return isUserInRole(Constants.BLOG_CONTRIBUTOR_ROLE);
       183    }
       184
       185    private static GrantedAuthority[] createGrantedAuthorities(String roles[]) {
                 /*
        P/P       *  Method: GrantedAuthority[] createGrantedAuthorities(String[])
                  *
                  *  Presumptions:
                  *    init'ed(net.sourceforge.pebble.Constants.BLOG_READER_ROLE)
                  *
                  *  Preconditions:
                  *    (soft) roles.length <= 232-1
                  *    (soft) roles[...] != null
                  *
                  *  Postconditions:
                  *    init'ed(return_value)
                  *
                  *  Test Vectors:
                  *    roles: Addr_Set{null}, Inverse{null}
                  */
       186      Set<GrantedAuthority> authorities = new HashSet<GrantedAuthority>();
       187      if (roles != null) {
       188        for (String role : roles) {
       189          authorities.add(new GrantedAuthorityImpl(role.trim()));
       190        }
       191      }
       192      authorities.add(new GrantedAuthorityImpl(Constants.BLOG_READER_ROLE));
       193
       194      return authorities.toArray(new GrantedAuthority[]{});
       195    }
       196
       197    public void setUsername(String username) {
                 /*
        P/P       *  Method: void setUsername(String)
                  *
                  *  Postconditions:
                  *    this.username == username
                  *    init'ed(this.username)
                  */
       198      this.username = username;
       199    }
       200
       201    public void setPassword(String password) {
                 /*
        P/P       *  Method: void setPassword(String)
                  *
                  *  Postconditions:
                  *    this.password == password
                  *    init'ed(this.password)
                  */
       202      this.password = password;
       203    }
       204
       205    public void setName(String name) {
                 /*
        P/P       *  Method: void setName(String)
                  *
                  *  Postconditions:
                  *    this.name == name
                  *    init'ed(this.name)
                  */
       206      this.name = name;
       207    }
       208
       209    public void setEmailAddress(String emailAddress) {
                 /*
        P/P       *  Method: void setEmailAddress(String)
                  *
                  *  Postconditions:
                  *    this.emailAddress == emailAddress
                  *    init'ed(this.emailAddress)
                  */
       210      this.emailAddress = emailAddress;
       211    }
       212
       213    public void setWebsite(String website) {
                 /*
        P/P       *  Method: void setWebsite(String)
                  *
                  *  Postconditions:
                  *    this.website == website
                  *    init'ed(this.website)
                  */
       214      this.website = website;
       215    }
       216
       217    public void setProfile(String profile) {
                 /*
        P/P       *  Method: void setProfile(String)
                  *
                  *  Postconditions:
                  *    this.profile == profile
                  *    init'ed(this.profile)
                  */
       218      this.profile = profile;
       219    }
       220
       221    public void setGrantedAuthories(GrantedAuthority[] grantedAuthories) {
                 /*
        P/P       *  Method: void setGrantedAuthories(GrantedAuthority[])
                  *
                  *  Postconditions:
                  *    this.grantedAuthories == grantedAuthories
                  *    init'ed(this.grantedAuthories)
                  */
       222      this.grantedAuthories = grantedAuthories;
       223    }
       224
       225    public boolean isDetailsUpdateable() {
                 /*
        P/P       *  Method: bool isDetailsUpdateable()
                  *
                  *  Preconditions:
                  *    init'ed(this.detailsUpdateable)
                  *
                  *  Postconditions:
                  *    return_value == this.detailsUpdateable
                  *    init'ed(return_value)
                  */
       226      return detailsUpdateable;
       227    }
       228
       229    public void setDetailsUpdateable(boolean detailsUpdateable) {
                 /*
        P/P       *  Method: void setDetailsUpdateable(bool)
                  *
                  *  Postconditions:
                  *    this.detailsUpdateable == detailsUpdateable
                  *    init'ed(this.detailsUpdateable)
                  */
       230      this.detailsUpdateable = detailsUpdateable;
       231    }
       232
       233    public Map<String,String> getPreferences() {
                 /*
        P/P       *  Method: Map getPreferences()
                  *
                  *  Preconditions:
                  *    init'ed(this.preferences)
                  *
                  *  Postconditions:
                  *    return_value == &new HashMap(getPreferences#1)
                  *    new HashMap(getPreferences#1) num objects == 1
                  */
       234      return new HashMap<String,String>(preferences);
       235    }
       236
       237    public String getPreference(String key) {
                 /*
        P/P       *  Method: String getPreference(String)
                  *
                  *  Preconditions:
                  *    this.preferences != null
                  *
                  *  Postconditions:
                  *    init'ed(return_value)
                  */
       238      return preferences.get(key);
       239    }
       240
       241    public void setPreferences(Map<String,String> preferences) {
                 /*
        P/P       *  Method: void setPreferences(Map)
                  *
                  *  Postconditions:
                  *    this.preferences == &new HashMap(setPreferences#1)
                  *    new HashMap(setPreferences#1) num objects == 1
                  */
       242      this.preferences = new HashMap<String,String>(preferences);
       243    }
       244
       245  }

SofCheck Inspector Build Version : 2.22510

pebbleuserdetails.java | 2010-Jun-25 19:40:32
pebbleuserdetails.class | 2010-Jul-19 20:23:38