Merge Add hasAnyAuthority method in AuthorizePayloadsSpec.Access
This commit is contained in:
commit
3051a79188
|
@ -104,12 +104,10 @@ import java.util.List;
|
||||||
* }
|
* }
|
||||||
* </pre>
|
* </pre>
|
||||||
* @author Rob Winch
|
* @author Rob Winch
|
||||||
<<<<<<< HEAD
|
|
||||||
* @author Jesús Ascama Arias
|
* @author Jesús Ascama Arias
|
||||||
* @author Luis Felipe Vega
|
* @author Luis Felipe Vega
|
||||||
=======
|
|
||||||
* @author Manuel Tejeda
|
* @author Manuel Tejeda
|
||||||
>>>>>>> 9926ad68b8f4e465f6c5243a8ff993fbf9d1b7a2
|
* @author Ebert Toribio
|
||||||
* @since 5.2
|
* @since 5.2
|
||||||
*/
|
*/
|
||||||
public class RSocketSecurity {
|
public class RSocketSecurity {
|
||||||
|
@ -334,6 +332,10 @@ public class RSocketSecurity {
|
||||||
.just(new AuthorizationDecision(true)));
|
.just(new AuthorizationDecision(true)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AuthorizePayloadsSpec hasAnyAuthority(String... authorities) {
|
||||||
|
return access(AuthorityReactiveAuthorizationManager.hasAnyAuthority(authorities));
|
||||||
|
}
|
||||||
|
|
||||||
public AuthorizePayloadsSpec access(
|
public AuthorizePayloadsSpec access(
|
||||||
ReactiveAuthorizationManager<PayloadExchangeAuthorizationContext> authorization) {
|
ReactiveAuthorizationManager<PayloadExchangeAuthorizationContext> authorization) {
|
||||||
AuthorizePayloadsSpec.this.authzBuilder.add(new PayloadExchangeMatcherEntry<>(this.matcher, authorization));
|
AuthorizePayloadsSpec.this.authzBuilder.add(new PayloadExchangeMatcherEntry<>(this.matcher, authorization));
|
||||||
|
|
|
@ -54,6 +54,7 @@ import static org.assertj.core.api.Assertions.assertThatCode;
|
||||||
* @author Luis Felipe Vega
|
* @author Luis Felipe Vega
|
||||||
* @author Jesús Ascama Arias
|
* @author Jesús Ascama Arias
|
||||||
* @author Manuel Tejeda
|
* @author Manuel Tejeda
|
||||||
|
* @author Ebert Toribio
|
||||||
*/
|
*/
|
||||||
@ContextConfiguration
|
@ContextConfiguration
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
|
@ -219,6 +220,23 @@ public class RSocketMessageHandlerConnectionITests {
|
||||||
assertThat(hiRob).isEqualTo("Hi rob");
|
assertThat(hiRob).isEqualTo("Hi rob");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void connectWithAnyAuthority() {
|
||||||
|
UsernamePasswordMetadata credentials =
|
||||||
|
new UsernamePasswordMetadata("admin", "password");
|
||||||
|
this.requester = requester()
|
||||||
|
.setupMetadata(credentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
|
||||||
|
.connectTcp(this.server.address().getHostName(), this.server.address().getPort())
|
||||||
|
.block();
|
||||||
|
|
||||||
|
String hiEbert = this.requester.route("management.users")
|
||||||
|
.data("admin")
|
||||||
|
.retrieveMono(String.class)
|
||||||
|
.block();
|
||||||
|
|
||||||
|
assertThat(hiEbert).isEqualTo("Hi admin");
|
||||||
|
}
|
||||||
|
|
||||||
private RSocketRequester.Builder requester() {
|
private RSocketRequester.Builder requester() {
|
||||||
return RSocketRequester.builder()
|
return RSocketRequester.builder()
|
||||||
.rsocketStrategies(this.handler.getRSocketStrategies());
|
.rsocketStrategies(this.handler.getRSocketStrategies());
|
||||||
|
@ -278,6 +296,7 @@ public class RSocketMessageHandlerConnectionITests {
|
||||||
.route("secure.admin.*").hasRole("ADMIN")
|
.route("secure.admin.*").hasRole("ADMIN")
|
||||||
.route("secure.**").hasRole("USER")
|
.route("secure.**").hasRole("USER")
|
||||||
.route("secure.authority.*").hasAuthority("ROLE_USER")
|
.route("secure.authority.*").hasAuthority("ROLE_USER")
|
||||||
|
.route("management.*").hasAnyAuthority("ROLE_ADMIN")
|
||||||
.route("prohibit").denyAll()
|
.route("prohibit").denyAll()
|
||||||
.anyRequest().permitAll()
|
.anyRequest().permitAll()
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue