|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.shiro.realm.CachingRealm org.apache.shiro.realm.AuthenticatingRealm org.apache.shiro.realm.AuthorizingRealm org.apache.shiro.realm.SimpleAccountRealm org.apache.shiro.realm.text.TextConfigurationRealm
public class TextConfigurationRealm
A SimpleAccountRealm that enables text-based configuration of the initial User, Role, and Permission objects created at startup.
Each User account definition specifies the username, password, and roles for a user. Each Role definition specifies a name and an optional collection of assigned Permissions. Users can be assigned Roles, and Roles can be assigned Permissions. By transitive association, each User 'has' all of their Role's Permissions. User and user-to-role definitions are specified via thesetUserDefinitions(java.lang.String)
method and
Role-to-permission definitions are specified via the setRoleDefinitions(java.lang.String)
method.
Field Summary |
---|
Fields inherited from class org.apache.shiro.realm.SimpleAccountRealm |
---|
roles, users |
Constructor Summary | |
---|---|
TextConfigurationRealm()
|
Method Summary | |
---|---|
String |
getRoleDefinitions()
|
String |
getUserDefinitions()
|
protected void |
onInit()
Will call 'processDefinitions' on startup. |
protected void |
processDefinitions()
|
protected void |
processRoleDefinitions()
|
protected void |
processRoleDefinitions(Map<String,String> roleDefs)
|
protected void |
processUserDefinitions()
|
protected void |
processUserDefinitions(Map<String,String> userDefs)
|
void |
setRoleDefinitions(String roleDefinitions)
Sets a newline (\n) delimited String that defines role-to-permission definitions. |
void |
setUserDefinitions(String userDefinitions)
Sets a newline (\n) delimited String that defines user-to-password-and-role(s) key/value pairs according to the following format: |
protected static Set<String> |
toLines(String s)
|
protected static Map<String,String> |
toMap(Collection<String> keyValuePairs)
|
Methods inherited from class org.apache.shiro.realm.SimpleAccountRealm |
---|
accountExists, add, add, addAccount, addAccount, addRole, doGetAuthenticationInfo, doGetAuthorizationInfo, getRole, getUser, getUsername, getUsername, roleExists, toSet |
Methods inherited from class org.apache.shiro.realm.CachingRealm |
---|
clearCache, getAvailablePrincipal, getCacheManager, getName, isCachingEnabled, onLogout, setCacheManager, setCachingEnabled |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.apache.shiro.util.Initializable |
---|
init |
Constructor Detail |
---|
public TextConfigurationRealm()
Method Detail |
---|
protected void onInit()
onInit
in class AuthorizingRealm
public String getUserDefinitions()
public void setUserDefinitions(String userDefinitions)
Sets a newline (\n) delimited String that defines user-to-password-and-role(s) key/value pairs according to the following format:
username = password, role1, role2,...
Here are some examples of what these lines might look like:
root = reallyHardToGuessPassword, administrator
jsmith = jsmithsPassword, manager, engineer, employee
abrown = abrownsPassword, qa, employee
djones = djonesPassword, qa, contractor
guest = guestPassword
userDefinitions
- the user definitions to be parsed and converted to Map.Entry elementspublic String getRoleDefinitions()
public void setRoleDefinitions(String roleDefinitions)
Each line within the string must define a role-to-permission(s) key/value mapping with the equals character signifies the key/value separation, like so:
rolename = permissionDefinition1, permissionDefinition2, ...
where permissionDefinition is an arbitrary String, but must people will want to use
Strings that conform to the WildcardPermission
format for ease of use and flexibility. Note that if an individual permissionDefnition needs to
be internally comma-delimited (e.g. printer:5thFloor:print,info
), you will need to surround that
definition with double quotes (") to avoid parsing errors (e.g.
"printer:5thFloor:print,info"
).
NOTE: if you have roles that don't require permission associations, don't include them in this
definition - just defining the role name in the userDefinitions
is
enough to create the role if it does not yet exist. This property is really only for configuring realms that
have one or more assigned Permission.
roleDefinitions
- the role definitions to be parsed at initializationprotected void processDefinitions()
protected void processRoleDefinitions() throws ParseException
ParseException
protected void processRoleDefinitions(Map<String,String> roleDefs)
protected void processUserDefinitions() throws ParseException
ParseException
protected void processUserDefinitions(Map<String,String> userDefs)
protected static Set<String> toLines(String s)
protected static Map<String,String> toMap(Collection<String> keyValuePairs) throws ParseException
ParseException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |