diff --git a/src/main/scala/gitbucket/core/service/IssuesService.scala b/src/main/scala/gitbucket/core/service/IssuesService.scala index f3f4b96..911e3ca 100644 --- a/src/main/scala/gitbucket/core/service/IssuesService.scala +++ b/src/main/scala/gitbucket/core/service/IssuesService.scala @@ -18,7 +18,7 @@ import IssuesService._ def getIssue(owner: String, repository: String, issueId: String)(implicit s: Session) = - if (issueId forall (_.isDigit)) + if (isInteger(issueId)) Issues filter (_.byPrimaryKey(owner, repository, issueId.toInt)) firstOption else None diff --git a/src/main/scala/gitbucket/core/util/StringUtil.scala b/src/main/scala/gitbucket/core/util/StringUtil.scala index d288d49..f6e4bc0 100644 --- a/src/main/scala/gitbucket/core/util/StringUtil.scala +++ b/src/main/scala/gitbucket/core/util/StringUtil.scala @@ -5,6 +5,7 @@ import ControlUtil._ import org.apache.commons.io.input.BOMInputStream import org.apache.commons.io.IOUtils +import scala.util.control.Exception._ object StringUtil { @@ -26,6 +27,8 @@ def splitWords(value: String): Array[String] = value.split("[ \\t ]+") + def isInteger(value: String): Boolean = allCatch opt { value.toInt } map(_ => true) getOrElse(false) + def escapeHtml(value: String): String = value.replace("&", "&").replace("<", "<").replace(">", ">").replace("\"", """)