-
Notifications
You must be signed in to change notification settings - Fork 0
Initial Configuration and Setup
kaushik ganguly edited this page Jul 14, 2020
·
3 revisions
- Download the JAR access-control-1.X-SNAPSHOT-jar-with-dependencies.jar under the lib(create if not present) folder in your Maven Project
- Configure the POM dependency for Maven Projects
<!-- adding access control API -->
<dependency>
<groupId>accesscontrol</groupId>
<artifactId>access-control</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>${basedir}/lib/access-control-1.X-SNAPSHOT-jar-with-dependencies.jar</systemPath>
</dependency>
<!-- adding Log4J2 dependencies -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.12.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
</dependency>
<!-- add your choice of JDBC driver -->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
<scope>runtime</scope>
</dependency>
Create an accesscontrol.properties file as a part of your classpath. Below configuration highlights the mandatory options.
#mandatory
accesscontrol.datasource.url=jdbc:mysql://localhost/accesscontrol?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
#mandatory
accesscontrol.datasource.username=root
#mandatory
accesscontrol.datasource.password=****
#mandatory
accesscontrol.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#mandatory
accesscontrol.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
accesscontrol.jpa.show-sql=true
#mandatory
#create mode for testing
accesscontrol.jpa.hibernate.ddl-auto=create
#accesscontrol.jpa.hibernate.ddl-auto=update
#none for prod
#accesscontrol.jpa.hibernate.ddl-auto=none
accesscontrol.hibernate.c3p0.min_size=5
accesscontrol.hibernate.c3p0.max_size=20
accesscontrol.hibernate.c3p0.timeout=1800
accesscontrol.hibernate.c3p0.max_statements=50
accesscontrol.hibernate.format_sql=true
accesscontrol.hibernate.connection.autocommit=true
accesscontrol.password.salt=__SALT__
accesscontrol.password.pepper=__PEPPER__
accesscontrol.password.encryptedflag=__IS_ENCRYPTED__
#supports the digest types available in org.apache.commons.codec.digest.MessageDigestAlgorithms
#mandatory
accesscontrol.password.digest=SHA-256
accesscontrol.changelog.enabled=true
accesscontrol.pagination.pagelimit=100
accesscontrol.csv.delimiter=,
accesscontrol.csv.skiplines=1
Optionally you can also use the API to pass the properties in runtime:
Properties properties=new Properties();
properties.put("accesscontrol.datasource.url","jdbc:mysql://localhost/accesscontrol?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC");
....
....
....
AccessControlService accessControlService=new DefaultAccessControlService(properties);
Create the Log4j2 properties Create log4j2.properties with the config below
appender.console.type = Console
appender.console.name = LogToConsole
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.file.type = File
appender.file.name = LogToFile
appender.file.fileName=./accesscontrol-console.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
# Rotate log file
#appender.rolling.type = RollingFile
#appender.rolling.name = LogToRollingFile
#appender.rolling.fileName = logs/accesscontrol-console.log
#appender.rolling.filePattern = logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz
#appender.rolling.layout.type = PatternLayout
#appender.rolling.layout.pattern = %d %p %C{1.} [%t] %m%n
#appender.rolling.policies.type = Policies
#appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
#appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
#appender.rolling.policies.size.size=10MB
#appender.rolling.strategy.type = DefaultRolloverStrategy
#appender.rolling.strategy.max = 10
# Log to console and rolling file
logger.app.name = com.accesscontrol
logger.app.level = info
logger.app.additivity = false
#logger.app.appenderRef.rolling.ref = LogToRollingFile
logger.app.appenderRef.file.ref = LogToFile
logger.app.appenderRef.console.ref = LogToConsole
rootLogger.level = info
rootLogger.appenderRef.stdout.ref = LogToFile
rootLogger.appenderRef.console.ref = LogToConsole