96d1230461
* feat(oauth): add sso, hide internal auth and logout options. (#355) * feat(DB): Add new migration func for SSO settings EE-613 * feat(publicSettings): public settings response modification for OAuth SSO EE-608 (#357) * feat(oauth): updated logout logic with logoutUrl. (#365) * feat(oauth): update new token expiration for OAuth EE-612 * feat(oauth): add internal-auth view. (#358) * feat(oauth): add internal-auth view. * feat(oauth): removed unused method. * feat(oauth): updated oauth settings model * feat(oauth): updated #auth view with hide internal auth option (#369) * HideInternalAuth logic update * feat(oauth): HideInternalAuth logic update * feat(oauth): internal auth view updates * feat(oauth): internal auth login issue. * set SSO to ON by default * update migrator unit test * set SSO to true by default for new instance * prevent applying the SSO logout url to the initial admin user * set HideInternalAuth to true by default Co-authored-by: fhanportainer <79428273+fhanportainer@users.noreply.github.com> Co-authored-by: Felix Han <felix.han@portainer.io>
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package jwt
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/dgrijalva/jwt-go"
|
|
portainer "github.com/portainer/portainer/api"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestGenerateSignedToken(t *testing.T) {
|
|
svc, err := NewService("24h")
|
|
assert.NoError(t, err, "failed to create a copy of service")
|
|
|
|
token := &portainer.TokenData{
|
|
Username: "Joe",
|
|
ID: 1,
|
|
Role: 1,
|
|
}
|
|
expirtationTime := time.Now().Add(1 * time.Hour)
|
|
|
|
generatedToken, err := svc.generateSignedToken(token, &expirtationTime)
|
|
assert.NoError(t, err, "failed to generate a signed token")
|
|
|
|
parsedToken, err := jwt.ParseWithClaims(generatedToken, &claims{}, func(token *jwt.Token) (interface{}, error) {
|
|
return svc.secret, nil
|
|
})
|
|
assert.NoError(t, err, "failed to parse generated token")
|
|
|
|
tokenClaims, ok := parsedToken.Claims.(*claims)
|
|
assert.Equal(t, true, ok, "failed to claims out of generated ticket")
|
|
|
|
assert.Equal(t, token.Username, tokenClaims.Username)
|
|
assert.Equal(t, int(token.ID), tokenClaims.UserID)
|
|
assert.Equal(t, int(token.Role), tokenClaims.Role)
|
|
assert.Equal(t, expirtationTime.Unix(), tokenClaims.ExpiresAt)
|
|
}
|