2017-10-08 15 views
0

私はstore backendとして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

- これは、生成されてしまったパスワードのハッシュ文字列です。

答えて

1

サーバーに渡すクエリがGroovyでコンパイルされ、Groovyが識別子として$を解決しようとしています。リテラル$がハッシュにあるので、$の前に\を置いてエスケープする必要があります。たとえば:

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

ないグルーヴィー教祖自身が、私は二重引用符を使用するときにしようとしているだけで、この評価は、私は、私は単一引用符を使用することを確実にすることによって、この問題を解決するために管理が実現しました。 私はPHPを使用していますので、最初にjson_encodeしてから、二重引用符を交換して、一重引用符を置き換えて、間に既にエスケープされている引用符があればそれを処理します。

関連する問題