認可の移行

次の手順は、認可サポートの移行を完了する方法に関連しています。

メソッドセキュリティに AuthorizationManager を使用する

この機能の移行手順はこれ以上ありません。

メッセージセキュリティに AuthorizationManager を使用する

6.0 では、<websocket-message-broker> はデフォルトで use-authorization-manager を true に設定します。移行を完了するには、websocket-message-broker@use-authorization-manager=true 属性をすべて削除します。

例:

  • XML

<websocket-message-broker use-authorization-manager="true"/>

変更:

  • XML

<websocket-message-broker/>

この機能のための Java または Kotlin の移行手順はこれ以上ありません。

リクエストセキュリティに AuthorizationManager を使用する

6.0 では、<http> は once-per-request を false に、filter-all-dispatcher-types を true に、use-authorization-manager を true にデフォルト設定します。また、authorizeHttpRequests#filterAllDispatcherTypes は true にデフォルト設定されています。移行を完了するには、デフォルト値をすべて削除できます。

例: filter-all-dispatcher-types または authorizeHttpRequests#filterAllDispatcherTypes の 6.0 デフォルトを選択した場合:

  • Java

  • Kotlin

  • XML

http
    .authorizeHttpRequests((authorize) -> authorize
        .filterAllDispatcherTypes(true)
        // ...
    )
http {
	authorizeHttpRequests {
		filterAllDispatcherTypes = true
        // ...
	}
}
<http use-authorization-manager="true" filter-all-dispatcher-types="true"/>

次に、デフォルトを削除できます。

  • Java

  • Kotlin

  • XML

http
    .authorizeHttpRequests((authorize) -> authorize
        // ...
    )
http {
	authorizeHttpRequests {
		// ...
	}
}
<http/>

once-per-request は use-authorization-manager="false" の場合にのみ適用され、filter-all-dispatcher-types は use-authorization-manager="true" の場合にのみ適用されます

-parameters でコンパイルする

Spring Framework 6.1 は LocalVariableTableParameterNameDiscoverer を削除します [GitHub] (英語) 。これは、@PreAuthorize およびその他のメソッドセキュリティアノテーションがパラメーター名を処理する方法に影響します。パラメーター名を含むメソッドセキュリティアノテーションを使用している場合、例:

id パラメーター名を使用したメソッドセキュリティアノテーション
@PreAuthorize("@authz.checkPermission(#id, authentication)")
public void doSomething(Long id) {
    // ...
}

パラメーター名が実行時に使用できるようにするには、-parameters を使用してコンパイルする必要があります。詳細については、Spring Framework 6.1 ページへのアップグレード [GitHub] (英語) を参照してください。