Add PasswordChangeRequiredException
This commit is contained in:
parent
d032a0e10b
commit
e2f9730fda
4 changed files with 79 additions and 0 deletions
|
@ -3,6 +3,7 @@ package io.github.wulkanowy.api.interceptor
|
|||
import io.github.wulkanowy.api.ApiException
|
||||
import io.github.wulkanowy.api.login.AccountPermissionException
|
||||
import io.github.wulkanowy.api.login.BadCredentialsException
|
||||
import io.github.wulkanowy.api.login.PasswordChangeRequiredException
|
||||
import okhttp3.Interceptor
|
||||
import okhttp3.Response
|
||||
import org.jsoup.Jsoup
|
||||
|
@ -43,6 +44,7 @@ class ErrorInterceptor : Interceptor {
|
|||
"Przerwa techniczna" -> throw ServiceUnavailableException(doc.title())
|
||||
"Strona nie została odnaleziona" -> throw ApiException(doc.title())
|
||||
"Strona nie znaleziona" -> throw ApiException(doc.selectFirst("div div").text())
|
||||
"Zmiana hasła użytkownika" -> throw PasswordChangeRequiredException("Wymagana zmiana hasła użytkownika")
|
||||
}
|
||||
|
||||
doc.select("h2").text().let {
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
package io.github.wulkanowy.api.login
|
||||
|
||||
import io.github.wulkanowy.api.ApiException
|
||||
|
||||
class PasswordChangeRequiredException internal constructor(message: String) : ApiException(message)
|
|
@ -4,6 +4,7 @@ import io.github.wulkanowy.api.Api
|
|||
import io.github.wulkanowy.api.BaseLocalTest
|
||||
import io.github.wulkanowy.api.login.LoginTest
|
||||
import io.github.wulkanowy.api.login.NotLoggedInException
|
||||
import io.github.wulkanowy.api.login.PasswordChangeRequiredException
|
||||
import io.github.wulkanowy.api.notes.Note
|
||||
import io.reactivex.observers.TestObserver
|
||||
import org.junit.Test
|
||||
|
@ -57,4 +58,12 @@ class ErrorInterceptorTest : BaseLocalTest() {
|
|||
notes.subscribe(observer)
|
||||
observer.assertError(ServiceUnavailableException::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun passwordChangeRequired() {
|
||||
val notes = getSnpRepo(LoginTest::class.java, "PrzywracanieDostepu.html", Api.LoginType.ADFSLight).getNotes()
|
||||
val observer = TestObserver<List<Note>>()
|
||||
notes.subscribe(observer)
|
||||
observer.assertError(PasswordChangeRequiredException::class.java)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Zmiana hasła użytkownika</title>
|
||||
</head>
|
||||
<body>
|
||||
<form action="/AccountManage/SetNewPassword?username=jan123&returnTo=/" method="post">
|
||||
<div class="mainDiv">
|
||||
<div class="innerDiv">
|
||||
<div>
|
||||
Mechanizm bezpieczeństwa (ochrona przeciwko robotom i robakom internetowym) może
|
||||
poprosić Cię o dodatkowe potwierdzenie. Postępuj zgodnie ze wskazówkami na ekranie.
|
||||
</div>
|
||||
<table id="tblPassword" border="0" cellpadding="3" cellspacing="3">
|
||||
<tr>
|
||||
<td align="right">Login:</td>
|
||||
<td colspan="2">
|
||||
<input name="__RequestVerificationToken" type="hidden" value=""/>
|
||||
<span style="font-weight : bold">jan123</span>
|
||||
<input data-val="true" id="Username" name="Username" type="hidden" value="jan123"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Obecne hasło:</td>
|
||||
<td>
|
||||
<input aria-required="true" id="OldPassword" name="OldPassword" type="password"/>
|
||||
<span class="field-validation-valid">(wymagane)</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Nowe hasło:</td>
|
||||
<td>
|
||||
<input aria-required="true" id="NewPassword" name="NewPassword" title="Wymagana właściwa złożoność hasła" type="password"/>
|
||||
<div id="PasswordTooltip">
|
||||
Hasło musi spełniać następujące wymagania: <br/>
|
||||
- długość hasła: co najmniej <b>8</b> <br/>
|
||||
- liczba wielkich liter: co najmniej <b>1</b><br/>
|
||||
- liczba cyfr: co najmniej <b>1</b> <br/>
|
||||
- ważność hasła (liczba dni po których hasło wygasa): <b>180</b> <br/>
|
||||
- unikalność hasła (liczba dni w których hasło nie może się powtórzyć): <b>191</b>
|
||||
</div>
|
||||
<span class="field-validation-valid">(wymagane)</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Powtórz nowe hasło:</td>
|
||||
<td>
|
||||
<input aria-required="true" name="RepeatedNewPassword" type="password"/>
|
||||
<span class="field-validation-valid">(wymagane)</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<input type="image" alt="Ustaw nowe hasło"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in a new issue