1

私は Django-axes を使用しており、github の readme に記載されている手順とまったく同じ手順を使用しています。djangoビューから正常にログインおよびログアウトできますが、メインWebサイトを通過すると、失敗したログイン試行はキャプチャされません。それにもかかわらず、管理サイトからの失敗したログイン試行は問題なくキャプチャされます。私は FailedLoginMiddleware を使用していますが、管理者固有のものは何もありません。すべての設定と構成を再確認しましたが、まだ問題の原因を見つけることができません。助けてください。

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'axes.middleware.FailedLoginMiddleware',
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'axes',
    'django.contrib.admin',
)

プロジェクトのurls.pyは次のとおりです。

from django.conf.urls.defaults import patterns, include, url
from django.contrib.auth.views import login, logout, password_change 

from qs.forms import ValidatingPasswordChangeForm

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^login/$', login, {'template_name': 'auth/login.html'}),
    (r'^logout/$', logout, {'redirect_field_name': '/login', 
                            'template_name': 'auth/logged_out.html'}),
    (r'^passw_change/$', password_change, 
                           {'post_change_redirect': '/rage', 
                            'template_name': 'auth/password_change.html',
                            'password_change_form': ValidatingPasswordChangeForm}),

    (r'^passw_reset/$', 'views.rage_password_reset'),
    (r'^passw_reset/done/', 'views.rage_password_reset_done'),
    (r'^passw_reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'views.rage_password_reset_confirm'),
    (r'^passw_reset/complete/$', 'views.rage_password_reset_complete'),

    url(r'^$', 'be.views.main.index'),
    url(r'^admin/', include(admin.site.urls)),
)
4

2 に答える 2

6

私はあなたの設定が機能しない理由を考えることができません-私はdjango-axesを使用し、私の設定はあなたのものとまったく同じであり、それはうまく機能します。ただし、次の手順を実行することで、Axesにすべてを強制的にログに記録させることができます。

  1. に変更axes.middleware.FailedLoginMiddlewareaxes.middleware.FailedAdminLoginMiddlewareますsettings.py。(FailedAuthLoginMiddleware明らかにあなたのために働いていないので、それを使用しないでください。)

  2. urls.confあなたの:を編集します

    ...
    from django.contrib.auth.views import login, logout, password_change
    from axes.decorators import watch_login
    ...
    urlpatterns = patterns('',
        (r'^login/$', watch_login(login), {'template_name': 'auth/login.html'}),
    ...
    

これにより、Axesは試行をログに記録するように強制されます。そうすることで、最初の問題が何であったかを明らかにすることもできます。

于 2012-06-07T18:40:48.943 に答える
0

I had the same problem, userena was capturing the login. Adding 'watch_login' as described above to the signin URL in userna fixed the problem.

于 2012-12-29T04:19:44.900 に答える