Skip to content

Commit c489136

Browse files
committed
Merge branch '7.0.x'
2 parents 2c32a9a + 6020ab8 commit c489136

1 file changed

Lines changed: 17 additions & 9 deletions

File tree

docs/modules/ROOT/pages/servlet/authorization/method-security.adoc

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1382,12 +1382,15 @@ Java::
13821382
[source,java,role="primary"]
13831383
----
13841384
@Component
1385-
public class MyAuthorizationManager implements AuthorizationManager<MethodInvocation>, AuthorizationManager<MethodInvocationResult> {
1385+
public class MyPreAuthorizeAuthorizationManager implements AuthorizationManager<MethodInvocation> {
13861386
@Override
13871387
public AuthorizationResult authorize(Supplier<Authentication> authentication, MethodInvocation invocation) {
13881388
// ... authorization logic
13891389
}
1390+
}
13901391
1392+
@Component
1393+
public class MyPostAuthorizeAuthorizationManager implements AuthorizationManager<MethodInvocationResult> {
13911394
@Override
13921395
public AuthorizationResult authorize(Supplier<Authentication> authentication, MethodInvocationResult invocation) {
13931396
// ... authorization logic
@@ -1400,11 +1403,14 @@ Kotlin::
14001403
[source,kotlin,role="secondary"]
14011404
----
14021405
@Component
1403-
class MyAuthorizationManager : AuthorizationManager<MethodInvocation>, AuthorizationManager<MethodInvocationResult> {
1406+
class MyPreAuthorizeAuthorizationManager : AuthorizationManager<MethodInvocation> {
14041407
override fun authorize(authentication: Supplier<Authentication>, invocation: MethodInvocation): AuthorizationResult {
14051408
// ... authorization logic
14061409
}
1410+
}
14071411
1412+
@Component
1413+
class MyPostAuthorizeAuthorizationManager : AuthorizationManager<MethodInvocationResult> {
14081414
override fun authorize(authentication: Supplier<Authentication>, invocation: MethodInvocationResult): AuthorizationResult {
14091415
// ... authorization logic
14101416
}
@@ -1427,13 +1433,13 @@ Java::
14271433
class MethodSecurityConfig {
14281434
@Bean
14291435
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
1430-
Advisor preAuthorize(MyAuthorizationManager manager) {
1436+
Advisor preAuthorize(MyPreAuthorizeAuthorizationManager manager) {
14311437
return AuthorizationManagerBeforeMethodInterceptor.preAuthorize(manager);
14321438
}
14331439
14341440
@Bean
14351441
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
1436-
Advisor postAuthorize(MyAuthorizationManager manager) {
1442+
Advisor postAuthorize(MyPostAuthorizeAuthorizationManager manager) {
14371443
return AuthorizationManagerAfterMethodInterceptor.postAuthorize(manager);
14381444
}
14391445
}
@@ -1446,15 +1452,15 @@ Kotlin::
14461452
@Configuration
14471453
@EnableMethodSecurity(prePostEnabled = false)
14481454
class MethodSecurityConfig {
1449-
@Bean
1455+
@Bean
14501456
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
1451-
fun preAuthorize(manager: MyAuthorizationManager) : Advisor {
1457+
fun preAuthorize(manager: MyPreAuthorizeAuthorizationManager): Advisor {
14521458
return AuthorizationManagerBeforeMethodInterceptor.preAuthorize(manager)
14531459
}
14541460
14551461
@Bean
14561462
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
1457-
fun postAuthorize(manager: MyAuthorizationManager) : Advisor {
1463+
fun postAuthorize(manager: MyPostAuthorizeAuthorizationManager): Advisor {
14581464
return AuthorizationManagerAfterMethodInterceptor.postAuthorize(manager)
14591465
}
14601466
}
@@ -1471,13 +1477,13 @@ Xml::
14711477
<bean id="preAuthorize"
14721478
class="org.springframework.security.authorization.method.AuthorizationManagerBeforeMethodInterceptor"
14731479
factory-method="preAuthorize">
1474-
<constructor-arg ref="myAuthorizationManager"/>
1480+
<constructor-arg ref="myPreAuthorizeAuthorizationManager"/>
14751481
</bean>
14761482
14771483
<bean id="postAuthorize"
14781484
class="org.springframework.security.authorization.method.AuthorizationManagerAfterMethodInterceptor"
14791485
factory-method="postAuthorize">
1480-
<constructor-arg ref="myAuthorizationManager"/>
1486+
<constructor-arg ref="myPostAuthorizeAuthorizationManager"/>
14811487
</bean>
14821488
----
14831489
======
@@ -1487,6 +1493,8 @@ Xml::
14871493
You can place your interceptor in between Spring Security method interceptors using the order constants specified in `AuthorizationInterceptorsOrder`.
14881494
====
14891495

1496+
You can also implement `MethodAuthorizationDeniedHandler` in the same manager class to override the default exception-handling behavior.
1497+
14901498
[[customizing-expression-handling]]
14911499
=== Customizing Expression Handling
14921500

0 commit comments

Comments
 (0)