Skip to content

Commit a911f3d

Browse files
committed
Merge Add hasAnyRole method in AuthorizePayloadsSpec.Access
2 parents 3854afa + 9926ad6 commit a911f3d

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

config/src/main/java/org/springframework/security/config/annotation/rsocket/RSocketSecurity.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,12 @@
104104
* }
105105
* </pre>
106106
* @author Rob Winch
107+
<<<<<<< HEAD
107108
* @author Jesús Ascama Arias
108109
* @author Luis Felipe Vega
110+
=======
111+
* @author Manuel Tejeda
112+
>>>>>>> 9926ad68b8f4e465f6c5243a8ff993fbf9d1b7a2
109113
* @since 5.2
110114
*/
111115
public class RSocketSecurity {
@@ -321,6 +325,10 @@ public AuthorizePayloadsSpec hasRole(String role) {
321325
return access(AuthorityReactiveAuthorizationManager.hasRole(role));
322326
}
323327

328+
public AuthorizePayloadsSpec hasAnyRole(String... roles) {
329+
return access(AuthorityReactiveAuthorizationManager.hasAnyRole(roles));
330+
}
331+
324332
public AuthorizePayloadsSpec permitAll() {
325333
return access((a, ctx) -> Mono
326334
.just(new AuthorizationDecision(true)));

config/src/test/java/org/springframework/security/config/annotation/rsocket/RSocketMessageHandlerConnectionITests.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
* @author Rob Winch
5454
* @author Luis Felipe Vega
5555
* @author Jesús Ascama Arias
56+
* @author Manuel Tejeda
5657
*/
5758
@ContextConfiguration
5859
@RunWith(SpringRunner.class)
@@ -201,6 +202,23 @@ public void connectionDenied() {
201202
.isInstanceOf(ApplicationErrorException.class);
202203
}
203204

205+
@Test
206+
public void connectWithAnyRole() {
207+
UsernamePasswordMetadata credentials =
208+
new UsernamePasswordMetadata("user", "password");
209+
this.requester = requester()
210+
.setupMetadata(credentials, UsernamePasswordMetadata.BASIC_AUTHENTICATION_MIME_TYPE)
211+
.connectTcp(this.server.address().getHostName(), this.server.address().getPort())
212+
.block();
213+
214+
String hiRob = this.requester.route("anyroute")
215+
.data("rob")
216+
.retrieveMono(String.class)
217+
.block();
218+
219+
assertThat(hiRob).isEqualTo("Hi rob");
220+
}
221+
204222
private RSocketRequester.Builder requester() {
205223
return RSocketRequester.builder()
206224
.rsocketStrategies(this.handler.getRSocketStrategies());

0 commit comments

Comments
 (0)