Skip to content

Commit

Permalink
sonar fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
kamenitxan committed Sep 23, 2024
1 parent 53bdeb1 commit 0739725
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package cz.kamenitxan.jakon.core.deploy
import cz.kamenitxan.jakon.core.deploy.entity.Server

trait IDeploy {

def deploy(server: Server): Unit

//def getDeploySettings: Map[String, String]
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import scala.util.Random
object UserService {
implicit val cls: Class[JakonUser] = classOf[JakonUser]

// language=SQL
val SQL_FIND_USER = "SELECT * FROM JakonUser WHERE email = ?"
// language=SQL
val SQL_FIND_USER_BY_USERNAME = "SELECT * FROM JakonUser WHERE username = ?"

Expand All @@ -27,7 +29,7 @@ object UserService {
}

def getByEmail(email: String)(implicit conn: Connection): JakonUser = {
val stmt = conn.prepareStatement(Authentication.SQL_FIND_USER)
val stmt = conn.prepareStatement(SQL_FIND_USER)
stmt.setString(1, email)
DBHelper.selectSingleDeep(stmt)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package cz.kamenitxan.jakon.utils.security.oauth

import java.sql.Connection

import cz.kamenitxan.jakon.core.database.DBHelper
import cz.kamenitxan.jakon.core.model.{AclRule, JakonUser}
import cz.kamenitxan.jakon.core.service.UserService
import cz.kamenitxan.jakon.logging.Logger
import cz.kamenitxan.jakon.utils.PageContext
import cz.kamenitxan.jakon.webui.controller.impl.Authentication.{SQL_FIND_ACL, SQL_FIND_USER}
import cz.kamenitxan.jakon.webui.entity.{Message, MessageSeverity}
import spark.Request

Expand All @@ -21,20 +20,11 @@ trait OauthProvider {
def handleAuthResponse(req: Request)(implicit conn: Connection): Boolean

def logIn(req: Request, email: String)(implicit conn: Connection): Boolean = {
val stmt = conn.prepareStatement(SQL_FIND_USER)
stmt.setString(1, email)

val result = DBHelper.selectSingle(stmt, classOf[JakonUser])
if (result.entity == null) {
val user = UserService.getByEmail(email)
if (user == null) {
PageContext.getInstance().messages += new Message(MessageSeverity.ERROR, "WRONG_EMAIL_OR_PASSWORD")
false
} else {
val user = result.entity
val stmt = conn.prepareStatement(SQL_FIND_ACL)
stmt.setInt(1, result.foreignIds.getOrElse("acl_id", null).ids.head)
val aclResult = DBHelper.selectSingle(stmt, classOf[AclRule])
user.acl = aclResult.entity

Logger.info("User " + user.username + " logged in")
req.session(true).attribute("user", user)
true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ object EntityValidator {
val errors = validatedData.map(data => {
val constructor: Constructor[_] = data._1.getDeclaringClass.getDeclaredConstructors.head
val parameterIndex = constructor.getParameters.zipWithIndex.find(pi => {
//Logger.warn(s"${pi._1.getName} - ${data._1.getName} : ${pi._1.getName == data._1.getName}")
pi._1.getName == data._1.getName
}).map(_._2)
if (parameterIndex.isEmpty) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package cz.kamenitxan.jakon.webui.controller.impl
import cz.kamenitxan.jakon.core.configuration.{DeployMode, Settings}
import cz.kamenitxan.jakon.core.database.DBHelper
import cz.kamenitxan.jakon.core.model.{AclRule, JakonUser}
import cz.kamenitxan.jakon.core.service.UserService
import cz.kamenitxan.jakon.logging.Logger
import cz.kamenitxan.jakon.utils.security.oauth.{Facebook, Google}
import cz.kamenitxan.jakon.utils.{PageContext, Utils}
Expand All @@ -19,8 +20,7 @@ import scala.language.postfixOps
*/
object Authentication {

// language=SQL
val SQL_FIND_USER = "SELECT * FROM JakonUser WHERE email = ?"

// language=SQL
val SQL_FIND_ACL = "SELECT * FROM AclRule WHERE id = ?"

Expand All @@ -41,27 +41,17 @@ object Authentication {
if (email != null && password != null) {
implicit val conn: Connection = DBHelper.getConnection
try {
// TODO: Use UserService
val stmt = conn.prepareStatement(SQL_FIND_USER)
stmt.setString(1, email)

val result = DBHelper.selectSingle(stmt, classOf[JakonUser])
if (result.entity == null) {
val user = UserService.getByEmail(email)
if (user == null) {
Logger.info("User " + email + " not found when logging in")
PageContext.getInstance().messages += new Message(MessageSeverity.ERROR, "WRONG_EMAIL_OR_PASSWORD")
return new Context(null, "login")
}

val user = result.entity
if (!user.enabled) {
PageContext.getInstance().messages += new Message(MessageSeverity.ERROR, "USER_NOT_ENABLED")
Logger.debug("User " + user.username + " is not enabled")
} else if (checkPassword(password, user.password)) {
val stmt = conn.prepareStatement(SQL_FIND_ACL)
stmt.setInt(1, result.foreignIds.getOrElse("acl_id", null).ids.head)
val aclResult = DBHelper.selectSingle(stmt, classOf[AclRule])
user.acl = aclResult.entity

if (Settings.getDeployMode == DeployMode.PRODUCTION && user.acl.masterAdmin && password == "admin") {
PageContext.getInstance().addMessage(MessageSeverity.WARNING, "DEFAULT_ADMIN_PASSWORD")
req.session().attribute(PageContext.MESSAGES_KEY, PageContext.getInstance().messages)
Expand Down

0 comments on commit 0739725

Please sign in to comment.