2010-01-19 3 views
0

Grails 1.2 앱이 있는데 역할 기반 액세스를 제한하기 위해 선언적 보안을 사용하고 싶습니다. 나는 시로를 설치하기로 결정했지만 플러그인을 설치했지만 인증을 시도하면 "잘못된 사용자 이름 및/또는 비밀번호"메시지이 헤더에 표시됩니다. 나는 db 항목을 확인하고 사용자는 sha'ed 암호가 있습니다. 콘솔이나 스택 추적 파일에는 메시지가 표시되지 않습니다. 나는 을 "org.jsecurity '에 경고를합니다.을 결과없이 Config.groovy에 추가했습니다. 이 문제를 해결하기위한 힌트/트릭이 있습니까?grails 앱에서 shiro로 인증 할 때 문제가 발생했습니다.

+0

추가 정보 "grails.app, org.apache.shiro"나는에서 생성 된 빠른 시작하고 "ShiroUser"를 실행 않았다 행운 – xain

답변

1

은 나뿐만 아니라이 문제에 달렸다 ... 어떻게 사용자의 암호를 저장하는 :

당신과 함께 최신 설치할 수 있습니까? 빠른 시작을 실행 한 후 나는 시로 플러그인 페이지의 예를 따라 내 부트 스트랩 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 
    } 
    } 
} 

+0

예 .. 시로 플러그인을 새로 설치하여 새로운 grails 앱을 만들었습니다. passwordHash가 Sha512Hash로 설정되고 다른 설정이 Sha256Hash로 설정된 사용자가 생성되었습니다. 기본 설정은 Sha256Hash ..로 설정됩니다. 사용자가 Sha512Hash로 설정되어 로그인이 실패하고 Sha256Hash로 설정된 사용자 암호로 성공적으로 로그인되었습니다! – mcroteau

+0

실제 플러그인에서 어디에서 찾을 수 있습니까? – mcroteau

0

퀵 스타트를 실행 했습니까? 기본 데이터베이스 영역을 사용하고 있습니까?

사용중인 영역을 통해 디버그하고 무슨 일이 벌어지는 지 봅니다.

+0

와 config (설정)하기 부트 스트랩을 통한 DB. 영역을 통해 어떻게 디버그 할 수 있습니까? 미리 감사드립니다. – xain

+0

빠른 시작이 기본 영역을 작성 했어야합니다. 디버깅 방법은 IDE에 따라 다르지만 grails-debug run-app를 사용하여 grails를 시작할 수 있으며 디버거는 기본 포트에서 수신 대기합니다. IDE에 연결하고 grails-app/realms/ShiroDbRealm.groovy에 중단 점을 설정하기 만하면됩니다. – leebutts

0

나는 shiro 문제 해결에 도움을 줄 수 없지만 좀 더 강력한 해결책을 찾고 있다면 민첩성을 확인하고 싶을 것입니다. 시로 (shiro)를 기반으로하며 추가 기능과 유연성을 많이 제공합니다.
grails install-plugin nimble 0.4-SNAPSHOT

nimble documentation

+0

최신 민첩한 문서는 http://snimavat.github.io/nimble/index.html –