[smarcet] - Refs #4581 - Added Recaptcha field after N failed logins attempts

This commit is contained in:
smarcet 2013-10-31 12:24:47 -03:00
parent fac1852446
commit 02f3118203
15 changed files with 201 additions and 348 deletions

View File

@ -12,6 +12,7 @@
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/filp/whoops" />
<excludeFolder url="file://$MODULE_DIR$/vendor/greggilbert/recaptcha" />
<excludeFolder url="file://$MODULE_DIR$/vendor/ircmaxell/password-compat" />
<excludeFolder url="file://$MODULE_DIR$/vendor/jeremeamia/SuperClosure" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laravel/framework" />
@ -93,6 +94,7 @@
<root url="file://$MODULE_DIR$/vendor/symfony/routing" />
<root url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
<root url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
<root url="file://$MODULE_DIR$/vendor/greggilbert/recaptcha" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<root url="file://$MODULE_DIR$/vendor/symfony/http-kernel" />
<root url="file://$MODULE_DIR$/vendor/composer" />
@ -140,6 +142,7 @@
<root url="file://$MODULE_DIR$/vendor/symfony/routing" />
<root url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
<root url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
<root url="file://$MODULE_DIR$/vendor/greggilbert/recaptcha" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<root url="file://$MODULE_DIR$/vendor/symfony/http-kernel" />
<root url="file://$MODULE_DIR$/vendor/composer" />

View File

@ -2,26 +2,20 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="cdc3929b-040d-4e45-bbd9-fa8f8bc87073" name="Default" comment="[smarcet] - Refs #4576, #4578 : XRDS discovery and Authentication Workflow main classes">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/database/migrations/2013_10_30_203940_create_banned_ips.php" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/models/BannedIP.php" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/tests/index.html" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/controllers/DiscoveryController.php" afterPath="$PROJECT_DIR$/app/controllers/DiscoveryController.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/libs/openid/services/IMementoOpenIdRequestService.php" afterPath="$PROJECT_DIR$/app/libs/openid/services/IMementoOpenIdRequestService.php" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/config/dev/.gitkeep" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/config/packages/greggilbert/recaptcha/.gitkeep" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/config/packages/greggilbert/recaptcha/dev/.gitkeep" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/config/packages/greggilbert/recaptcha/config.php" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/app/config/packages/greggilbert/recaptcha/dev/config.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/libs/auth/AuthService.php" afterPath="$PROJECT_DIR$/app/libs/auth/AuthService.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/libs/openid/services/IAuthService.php" afterPath="$PROJECT_DIR$/app/libs/openid/services/IAuthService.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/libs/openid/services/IServerConfigurationService.php" afterPath="$PROJECT_DIR$/app/libs/openid/services/IServerConfigurationService.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/services/MementoRequestService.php" afterPath="$PROJECT_DIR$/app/services/MementoRequestService.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/libs/openid/requests/OpenIdAuthenticationRequest.php" afterPath="$PROJECT_DIR$/app/libs/openid/requests/OpenIdAuthenticationRequest.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/libs/openid/handlers/OpenIdAuthenticationRequestHandler.php" afterPath="$PROJECT_DIR$/app/libs/openid/handlers/OpenIdAuthenticationRequestHandler.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/libs/openid/OpenIdProtocol.php" afterPath="$PROJECT_DIR$/app/libs/openid/OpenIdProtocol.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/tests/OpenIdProtocolTest.php" afterPath="$PROJECT_DIR$/app/tests/OpenIdProtocolTest.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/tests/OpenIdProviderControllerTest.php" afterPath="$PROJECT_DIR$/app/tests/OpenIdProviderControllerTest.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/services/ServerConfigurationService.php" afterPath="$PROJECT_DIR$/app/services/ServerConfigurationService.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/controllers/UserController.php" afterPath="$PROJECT_DIR$/app/controllers/UserController.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/extensions/ax.blade.php" afterPath="$PROJECT_DIR$/app/views/extensions/ax.blade.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/consent.blade.php" afterPath="$PROJECT_DIR$/app/views/consent.blade.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/filters.php" afterPath="$PROJECT_DIR$/app/filters.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/profile.blade.php" afterPath="$PROJECT_DIR$/app/views/profile.blade.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/routes.php" afterPath="$PROJECT_DIR$/app/routes.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/config/session.php" afterPath="$PROJECT_DIR$/app/config/session.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/config/app.php" afterPath="$PROJECT_DIR$/app/config/app.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/composer.json" afterPath="$PROJECT_DIR$/composer.json" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/login.blade.php" afterPath="$PROJECT_DIR$/app/views/login.blade.php" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/openidIdp.iml" afterPath="$PROJECT_DIR$/.idea/openidIdp.iml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
</list>
<ignored path="openidIdp.iws" />
@ -55,103 +49,7 @@
</favorites_list>
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="filters.php" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/filters.php">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="0" selection-start="478" selection-end="478" vertical-scroll-proportion="-1.8333334" vertical-offset="16" max-vertical-offset="1800">
<folding>
<element signature="e#6#41#0" expanded="true" />
<element signature="e#72#477#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="2013_10_30_203940_create_banned_ips.php" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/database/migrations/2013_10_30_203940_create_banned_ips.php">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="63" selection-start="396" selection-end="396" vertical-scroll-proportion="0.5194805" vertical-offset="135" max-vertical-offset="555">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="2013_10_17_211839_alter_trusted_sites_table.php" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/database/migrations/2013_10_17_211839_alter_trusted_sites_table.php">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="5.625" vertical-offset="135" max-vertical-offset="570">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="2013_10_17_210730_create_associations_table.php" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/database/migrations/2013_10_17_210730_create_associations_table.php">
<provider selected="true" editor-type-id="text-editor">
<state line="28" column="52" selection-start="716" selection-end="761" vertical-scroll-proportion="-15.625" vertical-offset="45" max-vertical-offset="555">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="2013_10_17_210518_create_users_table.php" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/database/migrations/2013_10_17_210518_create_users_table.php">
<provider selected="true" editor-type-id="text-editor">
<state line="21" column="75" selection-start="618" selection-end="634" vertical-scroll-proportion="-5.625" vertical-offset="180" max-vertical-offset="675">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="2013_10_17_211051_create_trusted_sites_table.php" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/database/migrations/2013_10_17_211051_create_trusted_sites_table.php">
<provider selected="true" editor-type-id="text-editor">
<state line="15" column="11" selection-start="143" selection-end="466" vertical-scroll-proportion="-9.375" vertical-offset="0" max-vertical-offset="495">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="OpenIdAssociation.php" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/models/OpenIdAssociation.php">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="31" selection-start="269" selection-end="342" vertical-scroll-proportion="-4.375" vertical-offset="0" max-vertical-offset="1185">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Member.php" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/models/Member.php">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="29" selection-start="201" selection-end="217" vertical-scroll-proportion="-2.5" vertical-offset="0" max-vertical-offset="300">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ServerConfigurationService.php" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/services/ServerConfigurationService.php">
<provider selected="true" editor-type-id="text-editor">
<state line="41" column="5" selection-start="948" selection-end="948" vertical-scroll-proportion="-4.4166665" vertical-offset="419" max-vertical-offset="825">
<folding>
<element signature="e#187#235#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="AssociationService.php" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/services/AssociationService.php">
<provider selected="true" editor-type-id="text-editor">
<state line="109" column="24" selection-start="4123" selection-end="4127" vertical-scroll-proportion="-6.25" vertical-offset="1305" max-vertical-offset="2265">
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
<leaf />
</component>
<component name="FindManager">
<FindUsagesManager>
@ -169,22 +67,22 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/app/libs/openid/OpenIdProtocol.php" />
<option value="$PROJECT_DIR$/app/routes.php" />
<option value="$PROJECT_DIR$/app/libs/openid/requests/OpenIdAuthenticationRequest.php" />
<option value="$PROJECT_DIR$/app/libs/openid/services/IMementoOpenIdRequestService.php" />
<option value="$PROJECT_DIR$/app/services/MementoRequestService.php" />
<option value="$PROJECT_DIR$/app/libs/openid/handlers/OpenIdAuthenticationRequestHandler.php" />
<option value="$PROJECT_DIR$/app/controllers/UserController.php" />
<option value="$PROJECT_DIR$/app/tests/OpenIdProviderControllerTest.php" />
<option value="$PROJECT_DIR$/app/tests/index.html" />
<option value="$PROJECT_DIR$/app/config/session.php" />
<option value="$PROJECT_DIR$/app/libs/openid/requests/OpenIdAssociationSessionRequest.php" />
<option value="$PROJECT_DIR$/app/libs/openid/services/IServerConfigurationService.php" />
<option value="$PROJECT_DIR$/app/filters.php" />
<option value="$PROJECT_DIR$/app/models/BannedIP.php" />
<option value="$PROJECT_DIR$/app/services/ServerConfigurationService.php" />
<option value="$PROJECT_DIR$/app/database/migrations/2013_10_30_203940_create_banned_ips.php" />
<option value="$PROJECT_DIR$/composer.json" />
<option value="$PROJECT_DIR$/app/config/app.php" />
<option value="$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Session/Store.php" />
<option value="$PROJECT_DIR$/app/libs/openid/services/IAuthService.php" />
<option value="$PROJECT_DIR$/app/libs/auth/AuthService.php" />
<option value="$PROJECT_DIR$/app/libs/openid/services/IServerConfigurationService.php" />
<option value="$PROJECT_DIR$/app/services/ServerConfigurationService.php" />
<option value="$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Routing/Controllers/Controller.php" />
<option value="$PROJECT_DIR$/app/controllers/UserController.php" />
<option value="$PROJECT_DIR$/app/views/login.blade.php" />
<option value="$PROJECT_DIR$/app/config/packages/greggilbert/recaptcha/config.php" />
</list>
</option>
</component>
@ -243,6 +141,7 @@
<path value="$PROJECT_DIR$/vendor/symfony/yaml" />
<path value="$PROJECT_DIR$/vendor/zendframework/zend-stdlib" />
<path value="$PROJECT_DIR$/vendor/classpreloader/classpreloader" />
<path value="$PROJECT_DIR$/vendor/greggilbert/recaptcha" />
</include_path>
</component>
<component name="ProjectFrameBounds">
@ -312,138 +211,6 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="vendor" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="public" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="bootstrap" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="services" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="models" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="database" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="openidIdp" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="app" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="database" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="migrations" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
</panes>
@ -452,14 +219,14 @@
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="73" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="92" />
<property name="options.splitter.main.proportions" value="0.3" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth0" value="72" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" />
<property name="recentsLimit" value="5" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth0" value="72" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../../www.yunmookwan.com.ar" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="100" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="954" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="955" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="954" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="100" />
<property name="GoToClass.includeJavaFiles" value="false" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="92" />
@ -480,6 +247,9 @@
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/app/config/dev" />
<recent name="$PROJECT_DIR$/app/config/packages/greggilbert/recaptcha/dev" />
<recent name="$PROJECT_DIR$/app/config/dev/packages" />
<recent name="$PROJECT_DIR$/app/storage" />
</key>
</component>
@ -614,11 +384,10 @@
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32871974" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32871974" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24913494" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298639" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.31545237" sideWeight="0.66608995" order="0" side_tool="false" content_ui="combo" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33391005" sideWeight="0.6180945" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32105684" sideWeight="0.5951557" order="0" side_tool="false" content_ui="combo" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.40484428" sideWeight="0.6180945" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3544093" sideWeight="0.38190553" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32871974" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
@ -626,6 +395,7 @@
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24913494" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="PHP-CGI Server" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32871974" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
@ -661,6 +431,16 @@
<line>91</line>
<option name="timeStamp" value="391" />
</line-breakpoint>
<line-breakpoint enabled="true" type="php">
<url>file://$PROJECT_DIR$/app/controllers/UserController.php</url>
<line>92</line>
<option name="timeStamp" value="401" />
</line-breakpoint>
<line-breakpoint enabled="true" type="php">
<url>file://$PROJECT_DIR$/vendor/greggilbert/recaptcha/src/Greggilbert/Recaptcha/RecaptchaServiceProvider.php</url>
<line>66</line>
<option name="timeStamp" value="403" />
</line-breakpoint>
</breakpoints>
<breakpoints-dialog>
<breakpoints-dialog>
@ -669,123 +449,111 @@
</selected-grouping-rules>
</breakpoints-dialog>
</breakpoints-dialog>
<option name="time" value="397" />
<option name="time" value="405" />
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/app/start/global.php">
<entry file="file://$PROJECT_DIR$/app/libs/auth/CustomAuthProvider.php">
<provider selected="true" editor-type-id="text-editor">
<state line="62" column="29" selection-start="1853" selection-end="1881" vertical-scroll-proportion="-10.625" vertical-offset="675" max-vertical-offset="1470">
<state line="98" column="43" selection-start="3354" selection-end="3374" vertical-scroll-proportion="0.32490975" vertical-offset="1215" max-vertical-offset="1875">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/libs/openid/requests/OpenIdAssociationSessionRequest.php">
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Session/Store.php">
<provider selected="true" editor-type-id="text-editor">
<state line="15" column="6" selection-start="285" selection-end="285" vertical-scroll-proportion="-4.375" vertical-offset="0" max-vertical-offset="960">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Http/Request.php">
<provider selected="true" editor-type-id="text-editor">
<state line="289" column="26" selection-start="5410" selection-end="5416" vertical-scroll-proportion="-3.125" vertical-offset="4230" max-vertical-offset="7605">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/libs/openid/services/Registry.php">
<provider selected="true" editor-type-id="text-editor">
<state line="12" column="6" selection-start="201" selection-end="201" vertical-scroll-proportion="-3.75" vertical-offset="0" max-vertical-offset="600">
<state line="147" column="0" selection-start="2596" selection-end="2596" vertical-scroll-proportion="0.33207548" vertical-offset="2117" max-vertical-offset="3870">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/libs/openid/services/IServerConfigurationService.php">
<provider selected="true" editor-type-id="text-editor">
<state line="19" column="47" selection-start="578" selection-end="578" vertical-scroll-proportion="-8.125" vertical-offset="0" max-vertical-offset="300">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/filters.php">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="0" selection-start="478" selection-end="478" vertical-scroll-proportion="-1.8333334" vertical-offset="16" max-vertical-offset="1800">
<folding>
<element signature="e#6#41#0" expanded="true" />
<element signature="e#72#477#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/models/Member.php">
<provider selected="true" editor-type-id="text-editor">
<state line="10" column="29" selection-start="201" selection-end="217" vertical-scroll-proportion="-2.5" vertical-offset="0" max-vertical-offset="300">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/models/OpenIdAssociation.php">
<provider selected="true" editor-type-id="text-editor">
<state line="13" column="31" selection-start="269" selection-end="342" vertical-scroll-proportion="-4.375" vertical-offset="0" max-vertical-offset="1185">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/database/migrations/2013_10_17_211051_create_trusted_sites_table.php">
<provider selected="true" editor-type-id="text-editor">
<state line="15" column="11" selection-start="143" selection-end="466" vertical-scroll-proportion="-9.375" vertical-offset="0" max-vertical-offset="495">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/models/BannedIP.php">
<provider selected="true" editor-type-id="text-editor">
<state line="8" column="14" selection-start="97" selection-end="105" vertical-scroll-proportion="-1.875" vertical-offset="0" max-vertical-offset="180">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/services/AssociationService.php">
<provider selected="true" editor-type-id="text-editor">
<state line="109" column="24" selection-start="4123" selection-end="4127" vertical-scroll-proportion="-6.25" vertical-offset="1305" max-vertical-offset="2265">
<state line="18" column="20" selection-start="511" selection-end="548" vertical-scroll-proportion="0.34351146" vertical-offset="0" max-vertical-offset="524">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/services/ServerConfigurationService.php">
<provider selected="true" editor-type-id="text-editor">
<state line="41" column="5" selection-start="948" selection-end="948" vertical-scroll-proportion="-4.4166665" vertical-offset="419" max-vertical-offset="825">
<folding>
<element signature="e#187#235#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/database/migrations/2013_10_17_211839_alter_trusted_sites_table.php">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="5.625" vertical-offset="135" max-vertical-offset="570">
<state line="39" column="57" selection-start="904" selection-end="941" vertical-scroll-proportion="-8.75" vertical-offset="270" max-vertical-offset="870">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/database/migrations/2013_10_17_210730_create_associations_table.php">
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Routing/Controllers/Controller.php">
<provider selected="true" editor-type-id="text-editor">
<state line="28" column="52" selection-start="716" selection-end="761" vertical-scroll-proportion="-15.625" vertical-offset="45" max-vertical-offset="555">
<state line="120" column="0" selection-start="2992" selection-end="2992" vertical-scroll-proportion="-4.0" vertical-offset="1644" max-vertical-offset="4590">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/database/migrations/2013_10_17_210518_create_users_table.php">
<entry file="file://$PROJECT_DIR$/app/views/login.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state line="21" column="75" selection-start="618" selection-end="634" vertical-scroll-proportion="-5.625" vertical-offset="180" max-vertical-offset="675">
<state line="16" column="18" selection-start="976" selection-end="976" vertical-scroll-proportion="0.46966732" vertical-offset="0" max-vertical-offset="780">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/database/migrations/2013_10_30_203940_create_banned_ips.php">
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Support/helpers.php">
<provider selected="true" editor-type-id="text-editor">
<state line="17" column="63" selection-start="396" selection-end="396" vertical-scroll-proportion="0.5194805" vertical-offset="135" max-vertical-offset="555">
<state line="30" column="0" selection-start="538" selection-end="538" vertical-scroll-proportion="0.16793893" vertical-offset="362" max-vertical-offset="14385">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php">
<provider selected="true" editor-type-id="text-editor">
<state line="44" column="0" selection-start="1255" selection-end="1255" vertical-scroll-proportion="0.16793893" vertical-offset="572" max-vertical-offset="1710">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/bootstrap/start.php">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.4509018" vertical-offset="225" max-vertical-offset="1245">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/controllers/UserController.php">
<provider selected="true" editor-type-id="text-editor">
<state line="108" column="0" selection-start="4265" selection-end="4265" vertical-scroll-proportion="0.74485594" vertical-offset="1063" max-vertical-offset="2505">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/greggilbert/recaptcha/src/config/config.php">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="499">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/laravel/framework/src/Illuminate/Config/Repository.php">
<provider selected="true" editor-type-id="text-editor">
<state line="91" column="0" selection-start="1642" selection-end="1642" vertical-scroll-proportion="0.16793893" vertical-offset="1247" max-vertical-offset="6285">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vendor/greggilbert/recaptcha/src/Greggilbert/Recaptcha/RecaptchaServiceProvider.php">
<provider selected="true" editor-type-id="text-editor">
<state line="66" column="54" selection-start="1352" selection-end="1395" vertical-scroll-proportion="0.16032064" vertical-offset="895" max-vertical-offset="1680">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/config/packages/greggilbert/recaptcha/dev/config.php">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="465">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/config/packages/greggilbert/recaptcha/config.php">
<provider selected="true" editor-type-id="text-editor">
<state line="8" column="5" selection-start="194" selection-end="194" vertical-scroll-proportion="0.25316456" vertical-offset="0" max-vertical-offset="474">
<folding />
</state>
</provider>

View File

@ -117,6 +117,7 @@ return array(
'auth\AuthenticationServiceProvider',
'services\ServicesProvider',
'strategies\OpenIdResponseStrategyProvider',
'Greggilbert\Recaptcha\RecaptchaServiceProvider',
),
/*

0
app/config/dev/.gitkeep Normal file
View File

View File

@ -0,0 +1,26 @@
<?php
return array(
/*
|--------------------------------------------------------------------------
| API Keys
|--------------------------------------------------------------------------
|
| Set the public and private API keys as provided by reCAPTCHA.
|
*/
'public_key' => '',
'private_key' => '',
/*
|--------------------------------------------------------------------------
| Template
|--------------------------------------------------------------------------
|
| Set a template to use if you don't want to use the standard one.
|
*/
'template' => '',
);

View File

@ -0,0 +1,26 @@
<?php
return array(
/*
|--------------------------------------------------------------------------
| API Keys
|--------------------------------------------------------------------------
|
| Set the public and private API keys as provided by reCAPTCHA.
|
*/
'public_key' => '6LdVkekSAAAAAIPedOme5QFY2CD8Jd9vp8yS-u3K',
'private_key' => '6LdVkekSAAAAAKG6z0I9qEQymxUZk00rX2BRfPTy',
/*
|--------------------------------------------------------------------------
| Template
|--------------------------------------------------------------------------
|
| Set a template to use if you don't want to use the standard one.
|
*/
'template' => '',
);

View File

@ -65,15 +65,21 @@ class UserController extends BaseController{
}
public function postLogin(){
$max_login_attempts_2_show_captcha = $this->server_configuration_service->getMaxFailedLoginAttempts2ShowCaptcha();
$data = Input::all();
$login_attempts = intval(Input::get('login_attempts'));
// Build the validation constraint set.
$rules = array(
'username' => 'required|email',
'password' => 'required'
'password' => 'required',
);
if($login_attempts>=$max_login_attempts_2_show_captcha){
$rules['recaptcha_response_field'] = 'required|recaptcha';
}
// Create a new validator instance.
$validator = Validator::make($data, $rules);
if ($validator->passes()) {
$username = Input::get("username");
@ -96,7 +102,11 @@ class UserController extends BaseController{
return Redirect::action("UserController@getIdentity",array("identifier"=> $user->getIdentifier()));
}
}
return Redirect::action('UserController@getLogin')->with('flash_notice', 'Authentication Failed!');
$user = $this->auth_service->getUserByUsername($username);
if($user){
$login_attempts = $user->login_failed_attempt;
}
return Redirect::action('UserController@getLogin')->with('max_login_attempts_2_show_captcha',$max_login_attempts_2_show_captcha)->with('login_attempts',$login_attempts)->with('flash_notice', 'Authentication Failed!');
}
return Redirect::action('UserController@getLogin')->withErrors($validator);
}

View File

@ -68,4 +68,9 @@ class AuthService implements IAuthService {
$user = OpenIdUser::where('identifier','=',$openid)->first();
return $user;
}
public function getUserByUsername($username){
$user = OpenIdUser::where('external_id','=',$username)->first();
return $user;
}
}

View File

@ -29,6 +29,8 @@ interface IAuthService {
*/
public function Login($username,$password,$remember_me);
public function getUserByUsername($username);
const AuthorizationResponse_None = "None";
const AuthorizationResponse_AllowOnce = "AllowOnce";
const AuthorizationResponse_AllowForever = "AllowForever";

View File

@ -16,6 +16,7 @@ interface IServerConfigurationService {
public function getPrivateAssociationLifetime();
public function getSessionAssociationLifetime();
public function getMaxFailedLoginAttempts();
public function getMaxFailedLoginAttempts2ShowCaptcha();
public function getNonceLifetime();
public function isValidIP($remote_address);
}

View File

@ -34,6 +34,10 @@ class ServerConfigurationService implements IServerConfigurationService{
}
public function getMaxFailedLoginAttempts(){
return 20;
}
public function getMaxFailedLoginAttempts2ShowCaptcha(){
return 3;
}

View File

@ -9,6 +9,12 @@
<legend>Login</legend>
{{ Form::text('username',null, array('placeholder' => 'Username','class'=>'input-block-level')) }}
{{ Form::password('password', array('placeholder' => 'Password','class'=>'input-block-level')) }}
@if(Session::has('login_attempts') && Session::has('max_login_attempts_2_show_captcha') && Session::get('login_attempts') > Session::get('max_login_attempts_2_show_captcha'))
{{ Form::captcha(array('id'=>'captcha','class'=>'input-block-level')) }}
{{ Form::hidden('login_attempts', Session::get('login_attempts')) }}
@else
{{ Form::hidden('login_attempts', '0') }}
@endif
<label class="checkbox">
{{ Form::checkbox('remember', '1', false) }}Remember me
</label>

View File

@ -6,7 +6,8 @@
"require": {
"laravel/framework": "4.0.*",
"phpunit/phpunit": "3.7.*",
"zendframework/zend-crypt":"2.2.*"
"zendframework/zend-crypt":"2.2.*",
"greggilbert/recaptcha": "dev-master"
},
"autoload": {
"classmap": [