mirror of
https://github.com/pomerium/pomerium.git
synced 2025-08-02 16:30:17 +02:00
config: add support for embedded PPL policy (#2401)
This commit is contained in:
parent
c34118360d
commit
0620cfdc50
8 changed files with 152 additions and 9 deletions
|
@ -7,6 +7,7 @@ import (
|
|||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/pomerium/pomerium/pkg/policy"
|
||||
"github.com/pomerium/pomerium/pkg/policy/parser"
|
||||
)
|
||||
|
||||
func TestPolicy_ToPPL(t *testing.T) {
|
||||
|
@ -38,6 +39,19 @@ func TestPolicy_ToPPL(t *testing.T) {
|
|||
},
|
||||
},
|
||||
},
|
||||
Policy: &PPLPolicy{
|
||||
Policy: &parser.Policy{
|
||||
Rules: []parser.Rule{{
|
||||
Action: parser.ActionAllow,
|
||||
Or: []parser.Criterion{{
|
||||
Name: "user",
|
||||
Data: parser.Object{
|
||||
"is": parser.String("user6"),
|
||||
},
|
||||
}},
|
||||
}},
|
||||
},
|
||||
},
|
||||
}).ToPPL())
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, `package pomerium.policy
|
||||
|
@ -469,24 +483,41 @@ else = v28 {
|
|||
v28
|
||||
}
|
||||
|
||||
users_5 {
|
||||
session := get_session(input.session.id)
|
||||
user := get_user(session)
|
||||
user_id := user.id
|
||||
user_id == "user6"
|
||||
}
|
||||
|
||||
or_1 = v1 {
|
||||
v1 := users_5
|
||||
v1
|
||||
}
|
||||
|
||||
allow = v1 {
|
||||
v1 := or_0
|
||||
v1
|
||||
}
|
||||
|
||||
else = v2 {
|
||||
v2 := or_1
|
||||
v2
|
||||
}
|
||||
|
||||
invalid_client_certificate_0 = reason {
|
||||
reason = [495, "invalid client certificate"]
|
||||
is_boolean(input.is_valid_client_certificate)
|
||||
not input.is_valid_client_certificate
|
||||
}
|
||||
|
||||
or_1 = v1 {
|
||||
or_2 = v1 {
|
||||
v1 := invalid_client_certificate_0
|
||||
v1
|
||||
}
|
||||
|
||||
deny = v1 {
|
||||
v1 := or_1
|
||||
v1 := or_2
|
||||
v1
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue