認可の移行
次の手順は、認可サポートの移行を完了する方法に関連しています。
メッセージセキュリティに 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/>
|
-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] (英語) を参照してください。