configurable jwt-secret and idm_address for ocs

This commit is contained in:
A.Unger
2021-04-26 12:32:02 +02:00
parent 81b7fad8f5
commit 75be5783c7
3 changed files with 26 additions and 11 deletions
+17 -9
View File
@@ -45,17 +45,25 @@ type TokenManager struct {
JWTSecret string
}
// IdentityManagement keeps track of the OIDC address. This is because Reva requisite of uniqueness for users
// is based in the combination of IDP hostname + UserID. For more information see:
// https://github.com/cs3org/reva/blob/4fd0229f13fae5bc9684556a82dbbd0eced65ef9/pkg/storage/utils/decomposedfs/node/node.go#L856-L865
type IdentityManagement struct {
Address string
}
// Config combines all available configuration parts.
type Config struct {
File string
Log Log
Debug Debug
HTTP HTTP
Tracing Tracing
TokenManager TokenManager
Service Service
AccountBackend string
RevaAddress string
File string
Log Log
Debug Debug
HTTP HTTP
Tracing Tracing
TokenManager TokenManager
Service Service
AccountBackend string
RevaAddress string
IdentityManagement IdentityManagement
Context context.Context
Supervised bool
+7
View File
@@ -165,6 +165,13 @@ func ServerWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"OCS_REVA_GATEWAY_ADDR"},
Destination: &cfg.RevaAddress,
},
&cli.StringFlag{
Name: "idm-address",
Value: flags.OverrideDefaultString(cfg.IdentityManagement.Address, "https://localhost:9200"),
EnvVars: []string{"OCS_IDM_ADDRESS", "OCIS_URL"},
Usage: "keeps track of the IDM Address. Needed because of Reva requisite of uniqueness for users",
Destination: &cfg.IdentityManagement.Address,
},
}
}
+2 -2
View File
@@ -455,14 +455,14 @@ func (o Ocs) DeleteUser(w http.ResponseWriter, r *http.Request) {
// TODO(refs) this to ocis-pkg ... we are minting tokens all over the place ... or use a service? ... like reva?
func (o Ocs) mintTokenForUser(ctx context.Context, account *accounts.Account) (string, error) {
tm, _ := jwt.New(map[string]interface{}{
"secret": "Pive-Fumkiu4", // TODO(refs) this MUST not be hardcoded
"secret": o.config.TokenManager.JWTSecret,
"expires": int64(60),
})
u := &revauser.User{
Id: &revauser.UserId{
OpaqueId: account.Id,
Idp: "https://localhost:9200", // TODO(refs) this MUST not be hardcoded
Idp: o.config.IdentityManagement.Address,
},
Groups: []string{},
Opaque: &types.Opaque{