tree 9f74d688a84f657d224a2584fb57f92fdc1ba119
parent 60507969e43b6499a9bdc2d4e076e3fa82403c9e
author cdmikechen <cdmikechen@hotmail.com> 1658190500 +0800
committer Kevin <pingsutw@apache.org> 1660019928 +0000

SUBMARINE-1294. Add simple type authentication for REST api

### What is this PR for?
Add simple type authentication for REST api.
Use [pac4j](https://www.pac4j.org/index.html) for token generation and validation. Considering need to adapt to java8, this PR is using 4.5.6 instead of version pac4j 5 for the time being.

### What type of PR is it?
Feature

### Todos
* [x] - Add some configs for authentication
* [x] - Add `SimpleFilter`
* [x] - Modified some login api processing logic (no logout available yet)
* [x] - Add test case

### What is the Jira issue?
https://issues.apache.org/jira/projects/SUBMARINE/issues/SUBMARINE-1294

### How should this be tested?
Have added a test case in `org.apache.submarine.server.security.SubmarineAuthSimpleTest`

### Screenshots (if appropriate)
No

### Questions:
* Do the license files need updating? No
* Are there breaking changes for older versions? Yes
* Does this need new documentation? Yes(link: https://github.com/apache/submarine/pull/975)

Author: cdmikechen <cdmikechen@hotmail.com>

Signed-off-by: Kevin <pingsutw@apache.org>

Closes #979 from cdmikechen/SUBMARINE-1294 and squashes the following commits:

2fff5bdc [cdmikechen] add a test user
b5d9b46c [cdmikechen] get config realtime
7c2b29fe [cdmikechen] init provider
0105bac5 [cdmikechen] remove some test
e0e0c25b [cdmikechen] change pc4j to 4.5.6 for adaptation of java8
909ffa9b [cdmikechen] Fist commit with pc4j 5.4.3 and test case
