Grails 1.2 앱이 있는데 역할 기반 액세스를 제한하기 위해 선언적 보안을 사용하고 싶습니다. 나는 시로를 설치하기로 결정했지만 플러그인을 설치했지만 인증을 시도하면 "잘못된 사용자 이름 및/또는 비밀번호"메시지이 헤더에 표시됩니다. 나는 db 항목을 확인하고 사용자는 sha'ed 암호가 있습니다. 콘솔이나 스택 추적 파일에는 메시지가 표시되지 않습니다. 나는 을 "org.jsecurity '에 경고를합니다.을 결과없이 Config.groovy에 추가했습니다. 이 문제를 해결하기위한 힌트/트릭이 있습니까?grails 앱에서 shiro로 인증 할 때 문제가 발생했습니다.
답변
은 나뿐만 아니라이 문제에 달렸다 ... 어떻게 사용자의 암호를 저장하는 :
당신과 함께 최신 설치할 수 있습니까? 빠른 시작을 실행 한 후 나는 시로 플러그인 페이지의 예를 따라 내 부트 스트랩 init 메소드에 아래의 코드를 추가 :
import org.apache.shiro.crypto.hash.Sha512Hash
def user = new ShiroUser(username: "user123", passwordHash: new Sha512Hash("password").toHex())
user.save()
내가 로그인을 시도 할 것입니다 및 로그인 실패가 계속 것입니다. 그래서 해봤 어
def user = new ShiroUser(username:'admin', passwordHash:new Sha256Hash("admin").toHex())
user.save()
Sha512Hash에서 Sha256Hash로 변경 한 후 ... 로그인 할 수있었습니다!
업데이트 : '빠른 시작'을 실행 한 후 기본 Shiro Plugin 설정으로 새 앱을 만들었습니다. 사용자를 생성하려면 Sha256Hash를 사용하기를 원할 것입니다. 그러나 Sha512Hash 또는 Sha1Hash를 사용하여 beans를 resources.groovy 파일에 Spring에 추가 할 수있다. Sha512Hash에 대한
예 :
beans = {
bean {
credentialMatcher(Sha512CredentialsMatcher) {
storedCredentialsHexEncoded = true
}
}
}
퀵 스타트를 실행 했습니까? 기본 데이터베이스 영역을 사용하고 있습니까?
사용중인 영역을 통해 디버그하고 무슨 일이 벌어지는 지 봅니다.
나는 shiro 문제 해결에 도움을 줄 수 없지만 좀 더 강력한 해결책을 찾고 있다면 민첩성을 확인하고 싶을 것입니다. 시로 (shiro)를 기반으로하며 추가 기능과 유연성을 많이 제공합니다.
grails install-plugin nimble 0.4-SNAPSHOT
최신 민첩한 문서는 http://snimavat.github.io/nimble/index.html –
추가 정보 "grails.app, org.apache.shiro"나는에서 생성 된 빠른 시작하고 "ShiroUser"를 실행 않았다 행운 – xain