public void authorizer4() { // tag::authorizer4[] Authorizer<Permission> defaultAuthorizer = Authorizer.create(); // <1> Realm realm = Realm.builder().withDefaultAuthorizer() // <2> .build(); // end::authorizer4[] }
public void authenticationListener() { // tag::listener[] Realm realm = getRealm(); realm.addAuthenticationListener(authentication -> { // <1> // do something ... authentication.getName(); }); // end::listener[] }
public void builder2() { // tag::builder2[] Realm realm = Realm.builder().withAuthenticator(AUTHENTICATOR1).build(); // <1> realm.addAuthenticator(AUTHENTICATOR2); // <2> // end::builder2[] }
public void builder3() { // tag::builder3[] Realm realm = Realm.builder().withAuthorizer(AUTHORIZER1).build(); // <1> realm.addAuthorizer(AUTHORIZER2); // <2> // end::builder3[] }
public void authenticate() { Realm realm = Realm.builder().withAuthenticator(new MyAuthenticator()).build(); // <4> try { Authentication authc = realm.authenticate(new MyAuthenticationToken("test")); // <5> } catch (AuthenticationException e) { // handle failed authentication } } // end::authenticator[]
public void context() { // tag::context[] final Realm realm = Realm.builder().build(); Context.get().classLoaderScope().map(scope -> scope.put(Realm.CONTEXT_KEY, realm)); // <1> Optional<Realm> currentRealm = Realm.getCurrent(); // <2> Realm requiredRealm = Realm.require(); // <3> // end::context[] }
public void permissions() { // tag::permissions[] final Permission p1 = Permission.create("role1"); // <1> final Permission p2 = Permission.create("role2"); // <2> Authentication authc = Authentication.builder("test").withPermission(p1).withPermission(p2).build(); // <3> // Realm with default authorizer Realm realm = Realm.builder().withDefaultAuthorizer().build(); // <4> // permission checking boolean permitted = realm.isPermitted(authc, p1); // <5> permitted = realm.isPermitted(authc, "role1"); // <6> permitted = realm.isPermittedAny(authc, p1, p2); // <7> permitted = realm.isPermittedAny(authc, "role1", "role2"); // <8> boolean notPermitted = realm.isPermitted(authc, "other_role"); // <9> // end::permissions[] }
public void authenticator1() { // tag::authenticator1[] Realm realm = getRealm(); try { Authentication authc = realm.authenticate(new MyAuthenticationToken("test")); // <1> } catch (AuthenticationException e) { // handle failed authentication } // end::authenticator1[] }
public void authenticator2() { // tag::authenticator2[] AuthenticationManager authenticationManager = getAuthenticationManager(); // <1> Realm realm = Realm.builder().withDefaultAuthorizer() .withAuthenticator(SpringSecurity.authenticator(authenticationManager)) // <2> .build(); Authentication authc = realm.authenticate(SpringSecurityAuthenticationToken.account("user", "pwd1")); // <3> // end::authenticator2[] }
/** * Create an {@link AuthContext} which uses the Spring Security {@link SecurityContext} as authentication holder. * The default {@link SecurityContextHolder#getContext()} method is used to obtain the Spring Security * {@link SecurityContext} reference. * <p> * The {@link AuthContext} is bound to a default {@link Realm} instance, configured with the default * {@link Authorizer}. * </p> * @return A new {@link AuthContext} using the Spring Security {@link SecurityContext} as authentication holder * @see #authContext(Realm) */ static AuthContext authContext() { return authContext(Realm.builder().withDefaultAuthorizer().build()); }
public void tokenResolvers() { // tag::tokenresolver[] AuthenticationTokenResolver<MyMessage> myResolver = AuthenticationTokenResolver.create(MyMessage.class, // <1> msg -> msg.getHeader("MY_HEADER").map(value -> new MyMessageAuthenticationToken(value)) // <2> ); // end::tokenresolver[] // tag::realmmsg[] Realm realm = Realm.builder().withResolver(myResolver) // <1> .withAuthenticator(new MyAuthenticator()) // <2> .build(); MyMessage message = new MyMessage(); Authentication authc = realm.authenticate(message); // <3> // end::realmmsg[] }
public void authContext2() { // tag::authcontext2[] final Realm realm = Realm.builder().withDefaultAuthorizer().withAuthenticator(Account.authenticator(id -> { // <1> if ("usr".equals(id)) { return Optional.of(Account.builder(id).credentials(Credentials.builder().secret("pwd").build()) .withPermission("role1").build()); } return Optional.empty(); })).build(); AuthContext authContext = SpringSecurity.authContext(realm); // <2> authContext.authenticate(Account.accountCredentialsToken("usr", "pwd")); // <3> org.springframework.security.core.Authentication authc = SecurityContextHolder.getContext().getAuthentication(); // <4> String name = authc.getName(); // <5> Collection<? extends GrantedAuthority> authorities = authc.getAuthorities(); // <6> // end::authcontext2[] }
public void basicresolver() { // tag::basicresolver[] AccountProvider accountProvider = getAccountProvider(); Realm realm = Realm.builder().withResolver(AuthenticationToken.httpBasicResolver()) // <1> .withAuthenticator(Account.authenticator(accountProvider)) // <2> .build(); // obtain the HttpRequest message, for example using a servlet request HttpRequest request = getHttpRequest(); try { Authentication authc = realm.authenticate(request); // <3> } catch (AuthenticationException e) { // handle authentication failures } // end::basicresolver[] }
public void builder() { // tag::builder[] Realm realm = Realm.builder() // <1> .withAuthenticator(AUTHENTICATOR1) // <2> .withAuthenticator(AUTHENTICATOR2) // <3> .withAuthorizer(AUTHORIZER1) // <4> .withAuthorizer(AUTHORIZER2) // <5> .build(); // end::builder[] }
public void auth() { // tag::auth[] AccountProvider provider = id -> Optional.of(Account.builder(id).enabled(true) .credentials(Credentials.builder().secret("pwd").base64Encoded().build()).withPermission("role1") .build()); // <1> Realm realm = Realm.builder() // .withAuthenticator(Account.authenticator(provider)) // <2> .withDefaultAuthorizer().build(); try { Authentication authc = realm.authenticate(AuthenticationToken.accountCredentials("test", "pwd")); // <3> } catch (AuthenticationException e) { // handle authentication failures } // end::auth[] }
@Bean // <3> @VaadinSessionScope public AuthContext authContext() { AccountProvider ap = id -> { // Only a user with username 'username1' is available if ("username1".equals(id)) { // setup the user password and assign the role 'role1' return Optional.of(Account.builder(id).credentials(Credentials.builder().secret("s3cr3t").build()) .withPermission("role1").build()); } return Optional.empty(); }; return AuthContext.create(Realm.builder() // authenticator using the AccountProvider .withAuthenticator(Account.authenticator(ap)) // default authorizer .withDefaultAuthorizer().build()); }
public void authenticator() throws IOException { // tag::authenticator[] JwtConfiguration configuration = JwtConfiguration.builder() // <1> .issuer("MyIssuer") // JWT token issuer .expireTime(10000) // expire time in milliseconds .includeDetails(true) // include the Authentication details in JWT token generation .includePermissions(true) // include the Authentication permissions in JWT token generation .signatureAlgorithm(JwtSignatureAlgorithm.HS256) // use HS256 as signature algorithm .sharedKey(new byte[] { 1, 2, 3 }) // shared key to use with the symmetric signing algorithm .build(); // JWT authenticator JwtAuthenticator jwtAuthenticator = JwtAuthenticator.builder().configuration(configuration) // <2> .issuer("allowedIssuer") // <3> .withRequiredClaim("myClaim") // <4> .build(); // Realm Realm realm = Realm.builder().withAuthenticator(jwtAuthenticator) // <5> .withDefaultAuthorizer().build(); Authentication authc = realm.authenticate(AuthenticationToken.bearer("TheJWTtokenHere...")); // <6> realm = Realm.builder().withAuthenticator(jwtAuthenticator) // .withResolver(AuthenticationToken.httpBearerResolver()) // <7> .withDefaultAuthorizer().build(); HttpRequest request = obtainHttpRequest(); authc = realm.authenticate(request); // <8> // end::authenticator[] }
@Override public Realm getContext(Class<?> type) { return Realm.builder() // .withResolver(AuthenticationToken.httpBasicResolver()) // <1> .withAuthenticator(Account.authenticator(getAccountProvider())) // <2> .withDefaultAuthorizer() // <3> .build(); }
@Bean // <3> @VaadinSessionScope public AuthContext authContext() { AccountProvider ap = id -> { // Only a user with username 'username1' is available if ("username1".equals(id)) { // setup the user password and assign the role 'role1' return Optional.of(Account.builder(id).credentials(Credentials.builder().secret("s3cr3t").build()) .withPermission("role1").build()); } return Optional.empty(); }; return AuthContext.create(Realm.builder() // authenticator using the AccountProvider .withAuthenticator(Account.authenticator(ap)) // default authorizer .withDefaultAuthorizer().build()); }