密码强度无法重置密码Symfony

时间:2017-07-03 07:51:23

标签: php forms symfony passwords fosuserbundle

我已为用户密码添加了密码强度。

Connection.Response resp = Jsoup.connect("https://eksisozluk.com/entry/" + entryId).cookies(loginCookies).method(Connection.Method.GET).execute();
String cookies = resp.cookies().toString().substring(1,resp.cookies().toString().length()-1).replace(",",";");

URL url = new URL("https://eksisozluk.com/entry/favla");
URLConnection urlConnection = url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestProperty("cookies",cookies);
urlConnection.connect();

OutputStream outputStream = urlConnection.getOutputStream();
outputStream.write(("{\"entryId\": \"" + entryId + "\"}").getBytes("UTF-8"));
outputStream.flush();

InputStream inputStream = urlConnection.getInputStream();             
java.util.Scanner s = new java.util.Scanner(inputStream).useDelimiter("\\A");
Log.d("Response",s.hasNext() ? s.next() : "");

这样可以正常工作,但如果用户想要重置其密码,则这些密码强度规则不适用。

如何在重置密码表单中添加密码强度?

2 个答案:

答案 0 :(得分:2)

    // vendor/friendsofsymfony/user-bundle/Ressources/config/validation.xml
    <property name="plainPassword">
        <constraint name="NotBlank">
            <option name="message">fos_user.password.blank</option>
            <option name="groups">
                <value>Registration</value>
                <value>ResetPassword</value>
                <value>ChangePassword</value>
            </option>
        </constraint>
        <constraint name="Length">
            <option name="min">2</option>
            <option name="max">4096</option>
            <option name="minMessage">fos_user.password.short</option>
            <option name="groups">
                <value>Registration</value>
                <value>Profile</value>
                <value>ResetPassword</value>
                <value>ChangePassword</value>
            </option>
        </constraint>
    </property>

鞋帮只是从fosuserbundle复制粘贴。正如您所见,fosuserbundle添加了组ResetPassword。试试这个以及

/**
* @Assert\Regex(
*  pattern="/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{7,}/",
*  message="Uw wachtwoord moet zeven tekens of langer zijn, minimaal één getal bevatten, een hoofletter en een kleine letter. ",
*  groups = { "ResetPassword"}
* )
*/
protected $plainPassword;

<强>更新

您所要做的就是添加一行

*  groups = { "ResetPassword"}

到$ plainPassword注释。

答案 1 :(得分:0)

两个

/**
 * @Assert\Regex(
 *  pattern="/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{7,}/",
 *  message="Uw wachtwoord moet zeven tekens of langer zijn, minimaal één getal bevatten, een hoofletter en een kleine letter. "
 * )
 */
protected $plainPassword;

<property name="plainPassword">
    <constraint name="NotBlank">
        <option name="message">fos_user.password.blank</option>
        <option name="groups">
            <value>Registration</value>
            <value>ResetPassword</value>
            <value>ChangePassword</value>
        </option>
    </constraint>
    <constraint name="Length">
        <option name="min">2</option>
        <option name="max">4096</option>
        <option name="minMessage">fos_user.password.short</option>
        <option name="groups">
            <value>Registration</value>
            <value>Profile</value>
            <value>ResetPassword</value>
            <value>ChangePassword</value>
        </option>
    </constraint>
</property>

Wil工作。错误来自我很久以前制作的验证器文件。此验证器出错,此错误是此选项无法正常工作的原因。

添加&#34; * groups = {&#34; registration&#34;}&#34;我修正了错误。

如果你反击我的错误,请检查验证文件是否有错误并修复它们。