Apache Shiro Quickstart, partie 2

La dernière fois, j'ai déplacé l'échantillon tel quel, mais je ne pense pas que les informations utilisateur soient écrites directement dans le fichier de configuration. http://qiita.com/namikitakeo/items/fc593526fd354a381fbd

[users]
# format: username = password, role1, role2, ..., roleN
root = secret,admin
guest = guest,guest
presidentskroob = 12345,president
darkhelmet = ludicrousspeed,darklord,schwartz
lonestarr = vespa,goodguy,schwartz

[roles]
# format: roleName = permission1, permission2, ..., permissionN
admin = *
schwartz = lightsaber:*
goodguy = winnebago:drive:eagle5

Veuillez vous reporter ici pour obtenir des informations utilisateur à partir de la base de données. J'utilise Apache Derby parce que ce n'est pas aussi bon que MySQL. https://nhachicha.wordpress.com/2012/06/30/mysql-apache-derby-as-jdbcrealm-for-apache-shiro/

Démarrez le service Apache Derby.

$ sudo su -
# cd /usr/share/derby
# ./NetworkServerControl start

Créez une base de données d'informations utilisateur.

$ ij
ij> connect 'jdbc:derby://localhost:1527/test;create=true';
ij> CREATE TABLE USERS (ID varchar(255) PRIMARY KEY NOT NULL, PASS varchar(255) NOT NULL);
ij> CREATE TABLE ROLES (ID varchar(255) PRIMARY KEY NOT NULL, ROLE varchar(255) NOT NULL);
ij> INSERT INTO USERS (ID,PASS) VALUES ('root','password');
ij> INSERT INTO ROLES (ID,ROLE) VALUES ('root','admin');

Accédez au répertoire Web.

$ cd shiro-root-1.3.2/samples/web

Modifiez shiro.ini comme suit.

jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.authenticationQuery = select pass from users where id = ?
jdbcRealm.userRolesQuery = select role from roles where id = ?

ds = com.jolbox.bonecp.BoneCPDataSource
ds.driverClass=org.apache.derby.jdbc.ClientDriver
ds.jdbcUrl=jdbc:derby://localhost:1527/test
jdbcRealm.dataSource=$ds

# We need to set the cipherKey, if you want the rememberMe cookie to work after restarting or on multiple nodes.
# YOU MUST SET THIS TO A UNIQUE STRING
#securityManager.rememberMeManager.cipherKey = kPH+bIxk5D2deZiIxcaaaA==

#[users]
# format: username = password, role1, role2, ..., roleN
#root = secret,admin
#guest = guest,guest
#presidentskroob = 12345,president
#darkhelmet = ludicrousspeed,darklord,schwartz
#lonestarr = vespa,goodguy,schwartz

#[roles]
# format: roleName = permission1, permission2, ..., permissionN
#admin = *
#schwartz = lightsaber:*
#goodguy = winnebago:drive:eagle5

Ajoutez une dépendance à pom.xml comme indiqué ci-dessous.

<dependency>
    <groupId>com.jolbox</groupId>
    <artifactId>bonecp</artifactId>
    <version>0.7.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derbyclient</artifactId>
    <version>10.4.2.0</version>
</dependency>

Exécutez Jetty.

$ mvn jetty:run

Veuillez vous référer à l'URL suivante avec un navigateur WEB. http://localhost:9080/

Recommended Posts

Apache Shiro Quickstart, partie 2
Apache Hadoop et Java 9 (partie 1)
Résumé de la traduction du didacticiel Apache Shiro