Notice: These instructions are for Tomcat 8, though JpPortal should (theoretically) work with JBoss and GlassFish as well.
Minimum Requirements
MySQL 5.6+
Java 8+
Tomcat 8
Required JARs (not included in zip file)
mysql-connector-java-5.1.13-bin.jar (to connect to MySQL)
jstl-1.2.jar (to use JSTL 1.2)
Installation
Copy jplib.jar and the required JARs listed above to the Tomcat /lib/ folder.
Copy JpPortal.war and JpInstaller.war to the Tomcat /webapps/ folder.
Create a MySQL user account (for the rest of these instructions, it is assumed that the username is 'jpportal' and the password is 'jpportal' -- I would suggest choosing your own username and password), and run the following grant statements:
:::sql
CREATE DATABASE jpportal;
GRANT ALL PRIVILEGES ON jpportal.* TO 'jpportal'@'%';
(please note that for better security, you should change the above statement to restrict the allowed user connection to a specific host; for example 'localhost' if MySQL and Tomcat are on the same server)
Tomcat Configuration
server.xml
Within the Engine section make sure that your Realm looks like this:
:::xml
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="com.jp.realm.JpRealm"/>
</Realm>
Within the Host section, make sure that one of the following Valves is not commented out. Use the SingleSignOn valve for use in a lone tomcat node. Use the ClusterSingleSignOn valve for use in a cluster.
:::xml
<Valve className="org.apache.catalina.authenticator.SingleSignOn"/>
or
<Valve className="org.apache.catalina.ha.authenticator.ClusterSingleSignOn"/>
context.xml
Add the jpportal resource:
:::xml
<Resource name="jpportal" type="javax.sql.DataSource"
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jpportal"
username="jpportal" password="jpportal"
maxWaitMillis="10000" maxIdle="30" maxTotal="100"/>
Now, start the Tomcat server and test by pointing your browser at http://localhost:8080/JpInstaller to get to the following page:

After installing, you will be automatically redirected to the following page:
