당신은 .findAllBy
를 사용하는이 한 요소, :
def loginAction = {
def username = params?.username
def password = params?.password
def user = Login.findAllByUsernameAndPassword(username, password)
def status = user.status
def role = user.role
println(">>>>>>>>>>>>>>>>>>>>>>>> "+role);
if(role == 'admin'){
render "Admin Login"
}else if(role == "teacher"){
render "Teacher's Login"
}else if(role == "student"){
render "student login"
}else{
flash.message = message(code: "Log-In failed, Please try again !!!")
redirect(controller:"login",action:"login")
}
}
참고 아래의 출력을 제공, println 메소드 작품 : 여기 아래에있는 내 코드입니다 명부. 결과적으로 역할 변수는 [admin]
값 (제공된 출력 참조)을 갖습니다. 역할 목록입니다. 문자열이 아닌 문자열 목록입니다.
이 목록을 admin
과 문자열 값으로 비교하고 있습니다.
def user = Login.findByUsernameAndPassword(username, password)
하 석 : 그래서, 그
["admin"] != "admin"
는 것처럼, 대신
findBy
를 사용 맞아! 내 제안은 : 자신 만의 보안을 만들지 말고, 알려진 (스프링 보안 플러그인)을 사용하십시오. –@ Mr.Cat 어떻게해야할지 모르겠군요. 저를 안내해 주실 수 있습니까? –
http://blog.springsource.org/2010/08/11/simplified-spring-security-with-grails/ –