mirror of
https://github.com/librecaptcha/lc-core.git
synced 2025-04-16 00:48:08 -04:00
Minor fixes
- Used prepared statements and made them immutable - Fixed indentation
This commit is contained in:
parent
f73f2a762f
commit
223808ba98
@ -13,13 +13,14 @@ trait ChallengeProvider {
|
|||||||
|
|
||||||
class Captcha {
|
class Captcha {
|
||||||
val con: Connection = DriverManager.getConnection("jdbc:h2:./captcha", "sa", "")
|
val con: Connection = DriverManager.getConnection("jdbc:h2:./captcha", "sa", "")
|
||||||
val stmt: Statement = con.createStatement();
|
val stmt: Statement = con.createStatement()
|
||||||
stmt.execute("CREATE TABLE IF NOT EXISTS challenge(token varchar, id varchar, secret varchar, image blob)");
|
stmt.execute("CREATE TABLE IF NOT EXISTS challenge(token varchar, id varchar, secret varchar, image blob)")
|
||||||
|
val insertPstmt: PreparedStatement = con.prepareStatement("INSERT INTO challenge(token, id, secret) VALUES (?, ?, ?)")
|
||||||
|
val selectPstmt: PreparedStatement = con.prepareStatement("SELECT secret FROM challenge WHERE token = ?")
|
||||||
|
|
||||||
def getCaptcha(): Boolean = {
|
def getCaptcha(): Boolean = {
|
||||||
val provider = new FilterChallenge
|
val provider = new FilterChallenge
|
||||||
val (token, image) = this.getChallenge(provider)
|
val (token, image) = this.getChallenge(provider)
|
||||||
val stmt: Statement = con.createStatement();
|
|
||||||
image.output(new File("Captcha.png"))
|
image.output(new File("Captcha.png"))
|
||||||
println(s"Token: ${token}")
|
println(s"Token: ${token}")
|
||||||
println("Enter your answer: ")
|
println("Enter your answer: ")
|
||||||
@ -30,36 +31,32 @@ class Captcha {
|
|||||||
def getChallenge(provider: ChallengeProvider): (String, Image) = {
|
def getChallenge(provider: ChallengeProvider): (String, Image) = {
|
||||||
val (image, secret) = provider.returnChallenge()
|
val (image, secret) = provider.returnChallenge()
|
||||||
val token = scala.util.Random.nextInt(10000).toString
|
val token = scala.util.Random.nextInt(10000).toString
|
||||||
var pstmt: PreparedStatement = null
|
insertPstmt.setString(1, token)
|
||||||
pstmt = con.prepareStatement("INSERT INTO challenge(token, id, secret) VALUES (?, ?, ?)")
|
insertPstmt.setString(2, provider.id)
|
||||||
pstmt.setString(1, token)
|
insertPstmt.setString(3, secret)
|
||||||
pstmt.setString(2, provider.id)
|
|
||||||
pstmt.setString(3, secret)
|
|
||||||
//TODO: insert image into database
|
//TODO: insert image into database
|
||||||
pstmt.executeUpdate()
|
insertPstmt.executeUpdate()
|
||||||
(token, image)
|
(token, image)
|
||||||
}
|
}
|
||||||
|
|
||||||
def getAnswer(token: String, answer: String, provider: ChallengeProvider): Boolean = {
|
def getAnswer(token: String, answer: String, provider: ChallengeProvider): Boolean = {
|
||||||
val stmt: Statement = con.createStatement();
|
selectPstmt.setString(1, token)
|
||||||
val rs: ResultSet = stmt.executeQuery("SELECT secret FROM challenge WHERE token = "+token);
|
val rs: ResultSet = selectPstmt.executeQuery()
|
||||||
rs.next()
|
rs.next()
|
||||||
val secret = rs.getString("secret")
|
val secret = rs.getString("secret")
|
||||||
provider.checkAnswer(secret, answer)
|
provider.checkAnswer(secret, answer)
|
||||||
}
|
}
|
||||||
|
|
||||||
def display(): Unit = {
|
def display(): Unit = {
|
||||||
val stmt: Statement = con.createStatement();
|
val rs: ResultSet = stmt.executeQuery("SELECT * FROM challenge")
|
||||||
val rs: ResultSet = stmt.executeQuery("SELECT * FROM challenge");
|
println("token\t\tid\t\tsecret\t\timage")
|
||||||
|
while(rs.next()) {
|
||||||
println("token\t\tid\t\tsecret\t\timage");
|
val token = rs.getString("token")
|
||||||
while(rs.next()) {
|
val id = rs.getString("id")
|
||||||
val token = rs.getString("token");
|
val secret = rs.getString("secret")
|
||||||
val id = rs.getString("id");
|
val image = rs.getString("image")
|
||||||
val secret = rs.getString("secret");
|
println(s"${token}\t\t${id}\t\t${secret}\t\t${image}")
|
||||||
val image = rs.getString("image");
|
}
|
||||||
println(s"${token}\t\t${id}\t\t${secret}\t\t${image}")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def closeConnection(): Unit = {
|
def closeConnection(): Unit = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user