Hi,

I am working on integrating spring security to java-chassis to make developing 
authentication and authorization management easier. Now I have finished the 
framework and basic authorization management.

This work is shown in [1].


1.       User's can create AuthenticationServer to manage users and roles and 
their confidential information.

2.       User's can add authentication in edge service.

3.       User's can add authentication and authorization in ResouceServer.  
This work project two ways to specify authorization,

using microservice.yaml like :



```

servicecomb:

  authencation:

    access:

      needAuth: true

      roles:

        HandlerAuthEndpoint:

          adminSayHello: ADMIN

```



or using method security

```

  @PostMapping(path = "/adminSayHello")

  @PreAuthorize("hasRole('ADMIN')")

  public String adminSayHello(String name) {

    return name;

  } ```


  This test cases are show in project Client, in AuthenticationTestCase.java .

I suggest to create a new project, servicecomb-security(or some other name), to 
hosting common components that can be reused to develop authentication and 
authorization.

Future plans of this project(informal):


1.       Make OAUTH2 as the default implementation.  JWT is the most effective 
authentication mechanism for miscroservices, I think OAUTH2(or related Open 
Connect ID) is the best choice.  (based on spring security oauth2)

2.       Add common framework to connect other OAUTH2 parties. (like 
keycloak[2], or firebase[3])

3.       Others based on user's feedback.


[1] https://github.com/apache/servicecomb-samples/tree/master/authentication
[2] https://www.keycloak.org/docs/latest/securing_apps/index.html
[3] https://firebase.google.com/docs/auth/





Reply via email to