-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModuleConfig.cfc
More file actions
62 lines (50 loc) · 1.79 KB
/
Copy pathModuleConfig.cfc
File metadata and controls
62 lines (50 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
component {
this.name = "cbsecurity-passkeys";
this.author = "Eric Peterson";
this.webUrl = "https://github.com/coldbox-modules/cbPasskeys";
this.entrypoint = "/cbsecurity/passkeys";
this.cfmapping = "cbsecurity-passkeys";
this.dependencies = [ "cbsecurity" ];
function configure() {
settings = {
"credentialRepositoryMapping" : "",
"relyingPartyId" : CGI.SERVER_NAME,
"relyingPartyName" : controller.getSetting( "appName" ),
"allowedOrigins" : []
};
interceptorSettings = {
"customInterceptionPoints" : [
"onPasskeyLogin",
"onPasskeyRegistration"
]
};
}
function afterAspectsLoad() {
if ( settings.credentialRepositoryMapping == "" ) {
throw( "You are required to set a `credentialRepositoryMapping` to use cbsecurity-passkeys" );
}
binder
.forceMap( "ClientCredentialRepository@cbsecurity-passkeys" )
.toDSL( settings.credentialRepositoryMapping );
var credentialRepository = createDynamicProxy(
wirebox.getInstance( "PasskeyService@cbsecurity-passkeys" ),
[ "com.yubico.webauthn.CredentialRepository" ]
);
var rpIdentity = createObject( "java", "com.yubico.webauthn.data.RelyingPartyIdentity" )
.builder()
.id( settings.relyingPartyId )
.name( settings.relyingPartyName )
.build();
if ( settings.allowedOrigins.isEmpty() ) {
throw( "You are required to set at least one `allowedOrigin` to use cbsecurity-passkeys" );
}
var rpBuilder = createObject( "java", "com.yubico.webauthn.RelyingParty" )
.builder()
.identity( rpIdentity )
.credentialRepository( credentialRepository );
if ( !settings.allowedOrigins.isEmpty() ) {
rpBuilder.origins( createObject( "java", "java.util.HashSet" ).init( settings.allowedOrigins ) );
}
binder.map( "RelyingParty@cbsecurity-passkeys" ).toValue( rpBuilder.build() );
}
}