ログインを使用して認証プロバイダーをセットアップする例はたくさんありますが、パッケージ用に認証プロバイダーをセットアップする方法の例が見つかりません。
TYPO3 Neos v1.2.x
バックエンド用のエディターを含むパッケージがあります。エディターはコントローラーを介して通信する必要があります。これまでのところすべて機能していますが、現在コントローラーにアクセスできません。TYPO3 Neos パッケージの Settings.yaml を見ると、オプションがありますcontrollerObjectName
。
Typo3BackendProvider:
provider: 'PersistedUsernamePasswordProvider'
requestPatterns:
controllerObjectName: 'TYPO3\Neos\Controller\.*|TYPO3\Neos\Service\.*|TYPO3\Media\Controller\.*'
entryPoint: 'WebRedirect'
entryPointOptions:
routeValues:
'@package': 'TYPO3.Neos'
'@controller': 'Login'
'@action': 'index'
'@format': 'html'
このオプションにコントローラーも追加すると、機能します。
controllerObjectName: 'TYPO3\Neos\Controller\.*|TYPO3\Neos\Service\.*|TYPO3\Media\Controller\.*|Vendor\Package\Controller\Backend\.*'
しかし、その答えが Neos の設定を上書きすることだとは想像できません。
そこで、 と同じ設定で独自のプロバイダーを追加しようとしましたTypo3BackendProvider
。
VendorPackageProvider:
provider: 'PersistedUsernamePasswordProvider'
requestPatterns:
controllerObjectName: 'Vendor\Package\Controller\Backend\.*'
entryPoint: 'WebRedirect'
entryPointOptions:
routeValues:
'@package': 'TYPO3.Neos'
'@controller': 'Login'
'@action': 'index'
'@format': 'html'
これは機能しないため、 を使用しようとして同じ名前tokenClass
で定義しましたTypo3BackendProvider
。VendorPackageProvider
動作しません。
ログも役に立ちません:
14-12-25 17:52:25 66198 127.0.0.1 INFO Flow Session 52exQd3r1orQA35gTfjQZhhOae4x5SVh contains auth token TYPO3\Flow\Security\Authentication\Token\UsernamePassword for provider VendorPackageProvider. Status: no credentials given
14-12-25 17:52:25 66198 127.0.0.1 INFO Flow Access denied (0 denied, 0 granted, 1 abstained) to method Vendor\Package\Controller\Backend\MyController::indexAction().
14-12-25 17:52:25 66198 127.0.0.1 INFO Flow Redirecting to authentication entry point
routeValues => array (
@package => TYPO3.Neos
@controller => Login
@action => index
@format => html
)
少なくとも私の Policy.yaml:
resources:
methods:
Vendor_Package_BackendAccess: 'method(Vendor\Package\Controller\Backend\MyController->(initalize|index)Action())'
acls:
'TYPO3.Neos:Editor':
methods:
Vendor_Package_BackendAccess: GRANT