2017-10-08 3 views
0

cassandra를 저장 백엔드로 사용하여 janusgraph를 사용하고 있습니다. 비밀번호를 저장하기 전에 bcrypt이라는 노드 패키지를 사용하고 있습니다. janusgraph의 해당 등록 정보에 대한 데이터 유형은 String입니다.janusgraph - bcrypt를 사용하여 암호화 된 비밀번호 저장

"message": "startup failed:\nScript88.groovy: 1: illegal string body character after dollar sign;\n solution: either escape a literal dollar sign \"\\$5\" or bracket the value expression \"${5}\" @ line 1, column 228.\n elf_reg_ind\",\"2\",\"self_reg_pw\",\"$2a$10$J\n         ^\n\n1 error\n", 
    "Exception-Class": "org.codehaus.groovy.control.MultipleCompilationErrorsException" 

당신이 다른 어떤 정보를 필요로하는 경우 알려 주시기 바랍니다 :

$2a$10$JSR6FClewTOHGxwpt/F0AePRzGnKvV2L9gj4TL1dA9fQERLWrig7u는 DB에 저장하는 동안 나는 점점 오전 오류입니다 -이 발생있어 암호 해시 문자열입니다.

답변

1

서버에 전달할 쿼리가 Groovy로 컴파일되고 Groovy가 $을 식별자로 확인하려고 시도하고 있습니다. 해시에 $ 문자가 있으므로 $ 앞에 \을 입력해야 이스케이프 처리됩니다. 예를 들어 :

{ "gremlin": 
    "g.V(1234).property('hash', '\$2a\$10\$JSR6FClewTOHGxwpt/F0AePRzGnKvV2L9gj4TL1dA9fQERLWrig7u')" 
} 
0

아니 그루비 전문가 나 자신,하지만 난 큰 따옴표를 사용하는 경우 시도 전용이 평가는 그래서 나는 작은 따옴표를 사용하도록함으로써이 문제를 해결하기 위해 운영 깨달았다. 나는 PHP를 사용하고 있으므로 먼저 json_encode 다음에 이스케이프 된 따옴표 (있는 경우)를 처리하는 작은 따옴표를 큰 따옴표로 교환하십시오.