{"id":50389595,"url":"https://github.com/grails-plugins/grails-shiro","last_synced_at":"2026-05-30T17:31:01.579Z","repository":{"id":4881138,"uuid":"197541818","full_name":"grails-plugins/grails-shiro","owner":"grails-plugins","description":"Grails Shiro plugin","archived":false,"fork":false,"pushed_at":"2026-05-18T06:34:17.000Z","size":20470,"stargazers_count":8,"open_issues_count":7,"forks_count":10,"subscribers_count":3,"default_branch":"6.0.x","last_synced_at":"2026-05-18T08:33:26.802Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"pledbrook/grails-shiro","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grails-plugins.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-07-18T08:06:36.000Z","updated_at":"2026-05-18T07:17:52.000Z","dependencies_parsed_at":"2022-09-20T22:45:44.855Z","dependency_job_id":null,"html_url":"https://github.com/grails-plugins/grails-shiro","commit_stats":null,"previous_names":["grails-plugins/grails-shiro"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/grails-plugins/grails-shiro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grails-plugins%2Fgrails-shiro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grails-plugins%2Fgrails-shiro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grails-plugins%2Fgrails-shiro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grails-plugins%2Fgrails-shiro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grails-plugins","download_url":"https://codeload.github.com/grails-plugins/grails-shiro/tar.gz/refs/heads/6.0.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grails-plugins%2Fgrails-shiro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33703064,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-30T17:31:00.934Z","updated_at":"2026-05-30T17:31:01.573Z","avatar_url":"https://github.com/grails-plugins.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Maven Central](https://img.shields.io/maven-central/v/org.grails.plugins/grails-shiro)](https://central.sonatype.com/artifact/org.grails.plugins/grails-shiro)\r\n[![License](https://img.shields.io/github/license/grails-plugins/grails-shiro)](https://www.apache.org/licenses/LICENSE-2.0)\r\n[![CI](https://github.com/grails-plugins/grails-shiro/actions/workflows/ci.yml/badge.svg)](https://github.com/grails-plugins/grails-shiro/actions/workflows/ci.yml)\r\n\r\n# Grails Shiro plugin\r\n\r\n## Versions\r\n\r\n* 6.0.0 This is the latest plugin release targetting Grails 7+ and using Shiro 3.x.\r\n* 5.0.0 This is the Grails Shiro plugin for *Grails version 5+ and Shiro 2.0.1*.\r\n* Older released versions 3.4 and 4.4.\r\n* Version 4.5.9 supports Grails 4 with shiro 1.13.0 not released on maven, you can download the branch and\r\nuse the ./gradlew publishToMavenLocal to install it manually\r\n\r\nThis project was derived from the Grails 2.x version\r\n(https://github.com/pledbrook/grails-shiro).\r\n\r\nWe pretty much re-wrote the plugin for Grails 3 \u0026 4 and to simplify the use, improve the documentation\r\nand make it easier to maintain. There are lots of changes please check out the latest [Guide](https://grails-plugins.github.io/grails-shiro/snapshot/).\r\n\r\n### Numbering\r\n\r\nSince v6.0.0 we are trying to simplify versioning. The plugin version is neither tied to the Grails release nor the Apache Shiro release used. We try to follow the rules of semantic versioning.\r\n\r\n\r\nVersions up to 5.0.0 used in general the Grails major version it supports, followed by the plugin release. e.g.\r\n\r\n```\r\n5.0.0 = Grails 5 plugin release 0\r\n3.4 = Grails 3 plugin release 4\r\n4.5.9 = Grails 4 plugin release 5.9\r\n```\r\n\r\n### Documentation and Source\r\n\r\nPlease find the [documentation](https://grails-plugins.github.io/grails-shiro/) on the plugin page. The source code is\r\nhosted in [grails-plugins/grails-shiro](https://github.com/grails-plugins/grails-shiro) on github.\r\n\r\n## Installation\r\n\r\nTo install, add this to your `build.gradle` dependencies for Grails `7+`:\r\n```\r\ndependencies {\r\n    implementation project('org.grails.plugins:grails-shiro:6.0.0')\r\n}\r\n```\r\n\r\n\r\nFor Grails 5/6 use: \r\n```\r\n//include the shiro dependency, required in Gradle 5+\r\n['ehcache', 'core', 'spring', 'web'].each { pkg -\u003e\r\n        implementation(\"org.apache.shiro:shiro-$pkg:2.0.1\") {\r\n            exclude module: 'ejb'\r\n            exclude module: 'jsf-api'\r\n            exclude module: 'servlet-api'\r\n            exclude module: 'jsp-api'\r\n            exclude module: 'jstl'\r\n            exclude module: 'jms'\r\n            exclude module: 'connector-api'\r\n            exclude module: 'ehcache-core'\r\n            exclude module: 'slf4j-api'\r\n            exclude module: 'commons-logging'\r\n        }\r\n    }\r\n```\r\n\r\nand this for Grails 4:\r\n\r\n```\r\ncompile \"org.grails.plugins:grails-shiro:4.4\"\r\n```\r\n\r\nand this for Grails 3:\r\n\r\n```\r\ncompile \"org.grails.plugins:grails-shiro:3.4\"\r\n```\r\n## Getting started\r\n\r\nIf you're implementing your security from scratch, then you can install grails-shiro as above and typing\r\n\r\n```\r\ngrails shiro-quick-start\r\n```\r\n\r\nFor more information see: [grails shiro-quick-start](https://grails-plugins.github.io/grails-shiro/latest/#shiro-quick-start).\r\n\r\nThis will create a ShiroWildcardDbRealm in your `grails-app/realms` directory and make a ShiroUser and\r\nShiroRole domain class. It will also create an AuthController to let you log in.\r\nCheck out [Wildcard DB Realm](https://grails-plugins.github.io/grails-shiro/latest/#wildcard-db-realm) for how you might populate a couple of users using Boostrap.groovy.\r\n\r\nNow, to Control access to a Controller add an Interceptor for that controller using\r\n\r\n```\r\ngrails create-shiro-controller-interceptor MyController\r\n```\r\n\r\nFor details see: [create-shiro-controller-interceptor](https://grails-plugins.github.io/grails-shiro/latest/#create-shiro-controller-interceptor)\r\nwhich will add [access control by convention](https://grails-plugins.github.io/grails-shiro/latest/#permission-string-conventions).\r\n\r\n## Version change log\r\n\r\n### version 6.0.0\r\n* upgrade to Grails 7.x\r\n* upgrade to Shiro 3.0.x\r\n* upgrade to modern multi-project gradle build\r\n\r\n### version 5.0.0\r\n\r\n* upgrade to Grails 5.3.6\r\n* Upgrade to Shiro 2.0.1\r\n* upgrade Gradle\r\n\r\nWARNING: you now need to include apache shiro in your build.gradle due to the newer versions of Gradle not pulling in\r\ntransitive deps. Quick Fix below.\r\n\r\n```\r\ndependencies {\r\n ...\r\n// add this to dependencies to get shiro depenedencies\r\n    ['ehcache', 'core', 'spring', 'web'].each { pkg -\u003e\r\n        implementation(\"org.apache.shiro:shiro-$pkg:$shiroVersion\") {\r\n            exclude module: 'ejb'\r\n            exclude module: 'jsf-api'\r\n            exclude module: 'servlet-api'\r\n            exclude module: 'jsp-api'\r\n            exclude module: 'jstl'\r\n            exclude module: 'jms'\r\n            exclude module: 'connector-api'\r\n            exclude module: 'ehcache-core'\r\n            exclude module: 'slf4j-api'\r\n            exclude module: 'commons-logging'\r\n        }\r\n    }\r\n}\r\n```\r\n\r\n### version 4.5.8\r\n\r\n* Upgrade to shiro version 1.13.0\r\n\r\n### version 4.4\r\n\r\n* Upgrade shiro to version 1.7.1 fixing CVE-2020-17523\r\n\r\n### version 3.3 \u0026 4.3\r\n\r\n* Fixed Annotation redirect missing context path - https://github.com/grails-plugins/grails-shiro/issues/16\r\n\r\nWARNING: This introduces a small breaking change. Annotations now use the login and unauthorized settings not URL Mappings\r\nto set where they redirect to.\r\n\r\n### version 4.2\r\n\r\n* upgrade to shiro 1.4.2\r\n\r\n### version 4.1\r\n\r\n* ported to Grails version 4.0.0 (thanks Peter Legen/animator013 for you help!)\r\n\r\n### version 3.1\r\n\r\n* Added ability to set the remember me cipherKey or the length of the randomly generated key\r\n* Fix for onNotAuthenticated and onUnauthorized not working correctly [Can't be invoked on metaclass](https://github.com/grails-plugins/grails-shiro/pull/6)\r\n\r\n### version 3.0\r\n\r\n* re-write from old Grails 2 plugin see updates in the [Guide](https://grails-plugins.github.io/grails-shiro/latest/)\r\n\r\n## Building from source\r\n\r\nTo build the plugin yourself and install it from this repo:\r\n\r\n1. clone or fork this repo to your machine\r\n2. run `gradle publishToMavenLocal` and that will build, test, install it to your local maven repo (`~/.m2`)\r\n3. profit!\r\n\r\n\r\n## Kudos\r\n\r\n* https://github.com/pledbrook/grails-shiro/commits?author=pledbrook[Peter Ledbrook] looking after original grails shiro plugin\r\n* https://github.com/pledbrook/grails-shiro/commits?author=yellowsnow[yellowsnow]\r\n* https://github.com/pledbrook/grails-shiro/commits?author=apandichi[apandichi]\r\n* https://github.com/animator013[animator013 - Peter Legen]\r\n* https://https://github.com/chrisbitmead[Chris Bitmead] - Grails 5 and AD changes\r\n* and https://github.com/pledbrook/grails-shiro/graphs/contributors[others] for work on the previous version of the plugin.\r\n\r\nThank you to everyone who provides feedback!\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrails-plugins%2Fgrails-shiro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrails-plugins%2Fgrails-shiro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrails-plugins%2Fgrails-shiro/lists"}