ましょう最初のスタート
:
grails create-app ShiroDemo
は今BuildConfig.groovyのプラグインセクションに追加shirobyをインストール:
プラグイン{ コンパイル ":shiro:1.1.4" "
認証コントローラとワイルドカードが必要ですALM:
grails create-auth-controller
grails create-wildcard-realm
今のはbootstrap.groovy
で必要な役割と権限を持つダミーのユーザーを作成してみましょう:
import org.apache.shiro.crypto.hash.Sha256Hash
class BootStrap {
def init = { servletContext ->
def roleUser = new ShiroRole(name:'USER')
roleUser.addToPermissions('auth:*')
roleUser.addToPermissions('controller:action')
roleUser.save(flush:true, failOnError: true)
def testUser = new ShiroUser(username:'kermit',passwordHash:new Sha256Hash("password").toHex())
testUser.addToRoles(roleUser)
testUser.save(flush:true, failOnError: true)
}
def destroy = {
}
}
はrole.User.addToPermissions
行を見てみましょう。ここでは、コントローラとアクションに権限を与えます。ロールに権限がない場合、ユーザーはアクセス拒否ページにリダイレクトされます。 shiroプラグインページで権限を指定する方法については、よくご存知でしょう。http://www.grails.org/plugin/shiro 残りのアプリケーション機能に対しては、さらに権限を追加する必要があります。 これらの権限をユーザーに直接追加することもできます。テストする場合や、特別な機能のために新しい役割を設定したくない場合に便利です。
btw:現在のshiroバージョンでは動作しないsha1hashではなくsha256hashを使用してください。
class SecurityFilters {
def filters = {
all(uri: "/**") {
before = {
// Ignore direct views (e.g. the default main index page).
if (!controllerName) return true
// Access control by convention.
accessControl()
}
}
}
}
これは、すべてのコントローラではなく、ダイレクトビュー(Googleのインデックスページ)のアクセス制御をインストールします:私たちがしなければならない
最後の事は/conf/SecurityFilters.groovy
クラスを作成することです。
は今それを試してみると、プロジェクトを実行します。助け
grails run-app
希望を!
親愛なるラルフ。もちろん、それはユーザーとロールのドメインクラスを追加する必要があります。ユーザーとロールのドメインのコンテンツを編集してください。お願いします。 :)また、コマンドgrails generate-viewsを使用してビューを作成する必要がありますか? – Shah
例が完成し、動作しています - ShiroRoleとShiroUserは上記のステートメントによって生成されます! – rdmueller
親愛なるラルフあなたGudingsは完璧なThnks ..まあ今私はすでにユーザーとロールクラスとインデックスページを持ってほしい。 (ビュー)。 UserControllerという名前のコントローラがあり、ログインとログアウトのアクションがあります。今、どのようにそのセキュリティをそのコードに適用できますか? – Shah