紙のノート「をベースにSpringBoot +史郎の著作権管理を達成するために」

紙のノート「をベースにSpringBoot +史郎の著作権管理を達成するために」

まず、基本的な情報

  • タイトル:著作権管理SpringBoot +史郎さんの実装

  • 出典:情報工学と科学大学の成都大学、成都、610100

  • キーワード:史郎フレームワーク; SpringBootフレームワーク、著作権管理

    第二に、研究

  1. Shiro 概述
    • Apacheの四郎は、包括的なセキュリティフレームワークの機能の多くを持っている、史郎はきれいにハンドル認証、許可、セッション管理と企業の暗号化、クリーンで直感的なAPIを提供します。史郎は使いやすく、理解し、同時に、自分の身元を確認するために、ユーザーを認証することができる非常に強力で、ユーザーのアクセス制御は、ユーザーがユーザーが行うことを許可するかどうかを判断するために特定のセキュリティロールが割り当てられているかどうかを決定するために行われます。
    • セッション機能の中史郎四郎もWebまたはEJBコンテナなしで、どのような環境でのセッションAPIの使用をサポートしていますので、コンテナ関係とは独立したセッションのプログラミングパラダイム、中に対応するアプリケーションで作成されます。史郎は、アクセス制御を検証したり、セッションの存続期間中に、アイデンティティのイベントに反応することができます。
    • 件名、セキュリティマネージャおよびレルム:Apacheの史郎のアーキテクチャは、3つの主要なコンセプトを持っています。件名は比較的抽象的な概念であり、我々は、一般に、対象オブジェクトとして理解される場所を「ユーザー」のアプリケーションと対話できるものであるが、三者プログラムは、我々はシステムと対話しているすべての「もの」として理解することができるということも可能です件名。四郎のフレームワークでは、対象のログイン、ログオフ、パーミッションをチェックし、アクセスセッションとオンそうで完成。すべての特定のセキュリティ操作がSecurityManagerのによって制御されている;のSecurityManagerの四郎は、四郎は最も重要な要素である、心あるSecurityManagerがすべての件名、およびSecurityManagerの相互作用により、被写体にすべての操作を管理します。レルムは、ユーザの認証および認可のためのアプリケーションとデータのセキュリティとの間の「ブリッジ」または「コネクタ」シロとして機能する。特定安全なDAO​​で本質的にレルム:それは四郎ように、データ・ソースに接続された詳細をカプセル化必要な関連データが利用可能です。史郎を設定するときは、認証と承認のために使用するために、少なくとも1つのレルムを指定する必要があります。SecurityManagerのは、複数のレルムを設定しますが、少なくとも一つを必要とすることができます。
    1. ポンポンの設定ファイル
      xml <! --集成shiro--> <dependency> <group|d> org.apache.shiro </group|d> <artifact|d> shiro-spring </artifact|d> <version> 1.4.0 </version> </dependency>
    2. カスタムReaml
    @Component
    public class MyShiroUserRealm extends AuthorizingRealm {
    @Autowired
    UserServiceImpl userService;
    
    /**
     * 用于授权
     *
     * @param principa|s
     * @return 授权信息
     */
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
        UserInforMation userInfo = (UserInforMation) principals.getPrimaryPrincipal();
    //用户权限列表
        Set<String> userPermsSet = userService.getUserPermissions(userInfo);
        SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
        authorizationInfo.setStringPermissions(userPermsSet);
        return info;
    }
    
    /**
     * 用于认证
     *
     * @param token
     * @return 认证信息
     * @throws AuthenticationException
     */
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
        //用户信息获取
        String userNameInput = (String) token.getPrincipal();
        String passwordInput = new String((char[]) token.getCredentials());
        //查询用户信息
        UserInforMation user = userService.findld(userNameInput);
        //用户不存在
        if (user == null) {
            throw new UnknownAccountException("用户账号不存在! ");
        }
        //密码错误
        if (!passwordInput.equals(user.getPassword())) {
            throw new IncorrectCredentialsException("账号用户名或者密码错误! ");
        }
        //账号被注销
        if (user.getState().equals("0")) {
            throw new LockedAccountException("账户已被注销! ");
        }
        System.out.println("用户登陆成功! ");
        SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, user.getPassword(), user.getName());
        return info;
    }
    }

    結論

  • ユーザー認証、承認、セッション管理、およびその他の機能を可能にしながらSpringBootプロジェクトに史郎セキュリティフレームワークを使用することにより、プロジェクトのためのアクセス制御を確保する機能を提供します。セキュリティ制御、史郎にセキュリティ制御プログラム、史郎使用簡単かつ迅速SpringBootで使いやすく、簡単な開発を必要とするすべてのプログラム、コードの重複作業の多くを書くためのプロジェクトのためのセキュリティ制御を減らします。

IV参照

  • 。[1]王シャンウェンSpringBoot +史郎権管理[J]コンピュータプログラミングのスキルやメンテナンスに基づき、2019、(9):160-161,173。

おすすめ

転載: www.cnblogs.com/clamye/p/12045432.html