피라미드 승인 우회

로마 인

문서 에 따라 피라미드 응용 프로그램에 권한을 추가했습니다 . 현재 앱은 정보 만 표시합니다.

또한 MySQL에서 로그인 정보를 얻을 것이므로 이와 유사한 것을 구현 했습니다 .

그러나 제대로 작동하지 않으며 해결 방법을 모르겠습니다.

로그 아웃 한 후 대상 페이지 URL을 입력하기 만하면 전체 로그인을 건너 뛸 수 있습니다. 로그인을 '잊는'것이 아닌 것 같습니다. URL을 직접 입력해도 로그인 페이지로 리디렉션되지 않습니다.

여기, 내 것이요 views.py:

대상 페이지 :

@view_config(route_name='monitor', 
        renderer='monitor:templates/monitor.mak', 
        permission='view'
        )
def monitor(request):

    oEntry_Logins = DBSession.query(Login).order_by(Login.id)
    oEntry_Alerts = DBSession.query(Alert).order_by(Alert.id)

    return {
                'oEntry_Logins' : oEntry_Logins,
                'oEntry_Alerts'   : oEntry_Alerts,
                'logged_in' : request.authenticated_userid,
        }

로그인 / 로그 아웃 :

@view_config(route_name='login', renderer='templates/login.pt')
@forbidden_view_config(renderer='templates/login.pt')
def login(request):


    login_url = request.route_url('login')
    referrer = request.url
    if referrer == login_url:
        referrer = '/' # never use the login form itself as came_from
    came_from = request.params.get('came_from', referrer)
    message = ''
    login = ''
    password = ''
    if 'form.submitted' in request.params:
        login = request.params['login']
        password = request.params['password']

        user = DBSession.query(User).filter(login==User.name).filter(password==User.password).count()  #DBSession
        if(user != 0):  #DBSession

            headers = remember(request, login)
            return HTTPFound(location = came_from,
                            headers = headers)
        message = 'Failed login'

    return dict(
        message = message,
        url = request.application_url + '/login',
        came_from = came_from,
        login = login,
        password = password,
        )

#logout view
@view_config(route_name='logout')
def logout(self):

    request = self.request

    headers = forget(request)
    return HTTPFound(location = request.route_url('login'),
                    headers = headers)

내 모델 파일은 다음과 같습니다.

...
class RootFactory(object):
    __acl__ = [ (Allow, Everyone, 'view'),
                (Allow, 'group:editors', 'edit') ]
    def __init__(self, request):
        pass

내 security.py 파일 :

from .models import (
    DBSession,
    User,
    )

def groupfinder(userid, request): 
    session = DBSession()
    for instance in session.query(User).filter(User.name==userid):

        group = 'group:'  #all are simply part of the same group
        lsth = {'userid':[group]}
    return lsth.get  ('userid')  

현재 테스트 목적으로 비밀번호는 mysql 데이터베이스에 일반 텍스트로 저장됩니다.

이 코드가 제대로 작동하도록하려면 어떻게해야합니까?

피터 티렐

한 번 더 요청하세요. groupfinder함수도 게시 할 수 있나요?

그래서 일어나는 것처럼 보이는 permission='view'것은 뷰가에 열려 있다는 것을 의미합니다 Everyone. 로 변경 permission='edit'하면 "editors"그룹의 구성원 만 사용할 수 있지만 groupfinder ()에서 반환되는 내용에 따라 달라집니다.

또는을 사용하는 경우 (Allow, Authenticated, 'edit')권한을 '수정'으로 변경하면 로그인 한 경우에만 액세스 할 수있을 from pyramid.security import Authenticated것입니다. 가져 오기 문에도 추가해야 할 수도 있습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

포인트 클라우드 라이브러리를 통한 장애물 회피

분류에서Dev

publish_action 권한이있는 경우 사전 승인없이 이미지와 일부 텍스트를 뉴스 피드 또는 타임 라인에 게시 할 수 있습니까?

분류에서Dev

로그인 코드 우회 PHP

분류에서Dev

Project Tango 포인트 클라우드 번역 및 회전

분류에서Dev

자바 *의 피라미드를 인쇄

분류에서Dev

매초 별 피라미드 인쇄

분류에서Dev

피라미드 보안 인증 요청

분류에서Dev

피라미드 보안 인증 요청

분류에서Dev

Crystal Reports 인구 피라미드

분류에서Dev

Perl의 역 피라미드 디자인

분류에서Dev

하프 피라미드 인쇄

분류에서Dev

클래스 메서드에 대한 피라미드 라우팅

분류에서Dev

마우스 포인터를 따라 이미지를 회전 시키십시오.

분류에서Dev

피라미드와 ember.js로 SPA 라우팅

분류에서Dev

라우터 로그인 화면을 우회하는 방법이 있습니까?

분류에서Dev

외부 필드가 ID 배열 인 경우 MongoDB 조회

분류에서Dev

특정 RESTful 엔드 포인트에서 Nginx 우회 캐시

분류에서Dev

이메일 확인 및 코드 승인

분류에서Dev

로그인 화면 우회

분류에서Dev

Apache Shiro 인증 우회

분류에서Dev

Fiddlercore 인증서 우회

분류에서Dev

HTML에서 JS 피라미드 바인딩

분류에서Dev

CSV 데이터가있는 Higcharts 인구 피라미드

분류에서Dev

자바에서 피라미드 패턴 인쇄

분류에서Dev

평면이 피라미드와 교차하는지 확인

분류에서Dev

자바 피라미드 프로그램 인쇄 번호?

분류에서Dev

minecraft bukkit 플러그인에서 피라미드 만들기

분류에서Dev

Kubernetes Ingress는 API 게이트웨이와 같이 라우팅 전에 승인을 수행합니다.

분류에서Dev

이미 주어진 권한을 요청하기 위해 자바 프로그램 오픈 브라우저에서 Google 승인을 얻습니다.

Related 관련 기사

  1. 1

    포인트 클라우드 라이브러리를 통한 장애물 회피

  2. 2

    publish_action 권한이있는 경우 사전 승인없이 이미지와 일부 텍스트를 뉴스 피드 또는 타임 라인에 게시 할 수 있습니까?

  3. 3

    로그인 코드 우회 PHP

  4. 4

    Project Tango 포인트 클라우드 번역 및 회전

  5. 5

    자바 *의 피라미드를 인쇄

  6. 6

    매초 별 피라미드 인쇄

  7. 7

    피라미드 보안 인증 요청

  8. 8

    피라미드 보안 인증 요청

  9. 9

    Crystal Reports 인구 피라미드

  10. 10

    Perl의 역 피라미드 디자인

  11. 11

    하프 피라미드 인쇄

  12. 12

    클래스 메서드에 대한 피라미드 라우팅

  13. 13

    마우스 포인터를 따라 이미지를 회전 시키십시오.

  14. 14

    피라미드와 ember.js로 SPA 라우팅

  15. 15

    라우터 로그인 화면을 우회하는 방법이 있습니까?

  16. 16

    외부 필드가 ID 배열 인 경우 MongoDB 조회

  17. 17

    특정 RESTful 엔드 포인트에서 Nginx 우회 캐시

  18. 18

    이메일 확인 및 코드 승인

  19. 19

    로그인 화면 우회

  20. 20

    Apache Shiro 인증 우회

  21. 21

    Fiddlercore 인증서 우회

  22. 22

    HTML에서 JS 피라미드 바인딩

  23. 23

    CSV 데이터가있는 Higcharts 인구 피라미드

  24. 24

    자바에서 피라미드 패턴 인쇄

  25. 25

    평면이 피라미드와 교차하는지 확인

  26. 26

    자바 피라미드 프로그램 인쇄 번호?

  27. 27

    minecraft bukkit 플러그인에서 피라미드 만들기

  28. 28

    Kubernetes Ingress는 API 게이트웨이와 같이 라우팅 전에 승인을 수행합니다.

  29. 29

    이미 주어진 권한을 요청하기 위해 자바 프로그램 오픈 브라우저에서 Google 승인을 얻습니다.

뜨겁다태그

보관