#
# This is a sample properties file for the org.eclipse.jetty.security.JDBCLoginService
# implemtation of the UserRealm interface. This allows Jetty users authentication
# to work from a database.
#
# +-------+ +------------+ +-------+
# | users | | user_roles | | roles |
# +-------+ +------------+ +-------+
# | id | /| user_id |\ | id |
# | user -------| role_id |------- role |
# | pwd | \| |/ | |
# +-------+ +------------+ +-------+
#
#
# 'cachetime' is a time in seconds to cache positive database
# lookups in internal hash table. Set to 0 to disable caching.
#
#
# For MySQL:
# create a MYSQL user called "jetty" with password "jetty"
#
# Create the tables:
# create table users
# (
# id integer primary key,
# username varchar(100) not null unique key,
# pwd varchar(20) not null
# );
#
# create table roles
# (
# id integer primary key,
# role varchar(100) not null unique key
# );
#
# create table user_roles
# (
# user_id integer not null,
# role_id integer not null,
# unique key (user_id, role_id),
# index(user_id)
# );
#
# I'm not sure unique key with a first component of user_id will be
# user by MySQL in query, so additional index wouldn't hurt.
#
# To test JDBC implementation:
#
# mysql> insert into users values (1, 'admin', 'password');
# mysql> insert into roles values (1, 'server-administrator');
# mysql> insert into roles values (2, 'content-administrator');
# mysql> insert into user_roles values (1, 1);
# mysql> insert into user_roles values (1, 2);
#
# Replace HashUserRealm in etc/admin.xml with JDBCUserRealm and
# set path to properties file.
#
jdbcdriver = org.gjt.mm.mysql.Driver
url = jdbc:mysql://localhost/jetty
username = jetty
password = jetty
usertable = users
usertablekey = id
usertableuserfield = username
usertablepasswordfield = pwd
roletable = roles
roletablekey = id
roletablerolefield = role
userroletable = user_roles
userroletableuserkey = user_id
userroletablerolekey = role_id
cachetime = 300