Symfony 2 Custom Security Provider

stemmer
0

Er det en måte å lage en tilpasset sikkerhetsleverandør uten å bruke økter, ved hjelp av min egen database klasse og får brukeren fra databasen med e-post og ikke uten haxing den getUsername returnere e-post?

Publisert på 22/06/2011 klokken 09:52
kilden bruker
På andre språk...                            


1 svar

stemmer
2

Du kan bruke SecurityBundle for dette, for ex. se eksempel nedenfor:

security.yml

encoders:
        MyComapnyMysuperBundle\Entity\User:
            algorithm: sha512
            encode-as-base64: true
            iterations: 10

    providers:
        main:
            entity: { class: MyComapnyMysuperBundle:User, property: username }

    firewalls:
        main:
            pattern: /.*
            form_login:
                check_path: /login_check
                login_path: /login
            logout: true
            security: true
            anonymous: true

    access_control:
        - { path: /admin/.*, role: ROLE_ADMIN }
        - { path: /.*, role: IS_AUTHENTICATED_ANONYMOUSLY }

du kan bruke læren enhet som sikkerhet gir, jo YML ordningen med brukerenhet for eksempel:

User.orm.yml

MyComapny\MysuperBundle\Entity\User:
    type: entity
    table: user
    id:
        id:
            type: integer
            generator: { strategy: AUTO }
    fields:
        username:
            type: string
            length: 255
        password:
            type: string
            length: 255
        first_name:
            type: string
            length: 255
        last_name:
            type: string
            length: 255
        email:
            type: string
            length: 255
        created_at:
            type: datetime
        salt:
            type: string
            length: 255
    manyToMany:
        userRoles:
            targetEntity: Role
            joinTable:
                name: user_role
                joinColumns:
                    user_id:
                        referencedColumnName: id
                inverseJoinColumns:
                    role_id:
                        referencedColumnName: id

og rolle enhet:

Role.orm.yml

MyComapny\MysuperBundle\Entity\Role:
    type: entity
    table: role
    id:
        id:
            type: integer
            generator: { strategy: AUTO }
    fields:
        name:
            type: string
            length: 255
        created_at:
            type: datetime

og eksempel på routing.yml

login:
    pattern:  /login
    defaults: { _controller: MyComapnyMysuperBundle:Security:login }

login_check:
    pattern:  /login_check

logout:
    pattern:  /logout

eTracker_home:
    pattern:  /admin/{name}
    defaults: { _controller: MyComapnyMysuperBundle:Admin:index }
Svarte 09/11/2011 kl. 23:38
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more