spring - JAVA WEB 授权问题请教。
PHP中文网
PHP中文网 2017-04-18 09:56:35
0
6
482

编写好了JAVA WEB,想像桌面软件那样,第一次使用的时候需要输入一个key,验证通过则能使用整个系统,否则就无法访问任何页面。

  • key可以包含授权使用时长,比如1个月。

  • 没有输入正确的key,则无论访问什么url路径,都会跳转到输入key的页面(和用户的登录页面一样)

请问这该怎么实现?

PHP中文网
PHP中文网

认证0级讲师

全員に返信(6)
阿神

簡単に言うと2種類あります

  1. 相手のマシンに基づいてキーを生成します。

    暗号化メソッドを自分で実装するだけです。 (逆解を必要としない要約アルゴリズムなどのアルゴリズムで十分です)
    次に、プロジェクトがデプロイされているコンピューターのメイン ハードウェア (マザーボード、ネットワーク カード、ハードディスクなど) mac地址 を取得します。これらのデータを使用してプロジェクト内の値を計算します。それがユーザーが入力したキーと同じである場合、正式なプロジェクトが開始されます。異なる場合は、キーを入力するように求められます。
    相手のハードウェア情報をどうやって取得するかは、例えばプロジェクトをデプロイした仲間に送ってもらって、その計算で鍵を計算して送るだけです。それを戻します。

  2. 自分でキーを生成し、どこにでも配布します。

    たとえば、別の Web サービスを構築し、このマシンを使用して UUID のバッチを生成し、それを配布します。その後、プロジェクトが開始された後、最初にこのサーバーに検証の実行を要求します。サーバーはキーが存在するかどうかを確認します。キーが使用されたマシンは最初のアクティベーションと同じマシンですか? (同じ非可逆アルゴリズムを使用するだけです)
    または、さらに単純には、擬似ランダム アルゴリズム (可逆アルゴリズム) を使用して、シードに基づいてキーのバッチを計算し、キーごとにシードをデコードできます。
    プロジェクト開始時に入力キーを復号化し、それがシードであるかどうかを判断します。

いいねを押す +0
伊谢尔伦
  • 他の手段でこの key を顧客に提供した場合に限ります

  • アクセスが違法かどうかを確認します。cookie を使用して、ログインしたかどうかを判断します。検証がより厳格な場合は、いくつかの ip アドレス、mac アドレス、その他の強力な検証を追加することもできます。結局のところ、あなたの顧客層はおそらく一般大衆ではありません。

  • 許可された使用期間は、月単位で計算されるとのことですが、さらに上級の顧客は半年単位で計算される可能性があるため、これは生成時に決定されます。
    を保存するには、この redis にアクセスするたびに、key から cookie を取得できます (ほとんどは暗号化する必要があります)。 key に移動して、残りの認証時間を取得できます keyredis

  • キーの検証に失敗し、いずれかのページにアクセスした場合は、キーを入力したページに戻る必要があります。質問には
  • タグが含まれているため、リクエストがインターセプトされていることを認識する必要があります。ジャンプする前に処理する必要があります。

    springmvc

いいねを押す +0
小葫芦

キーがユーザーにどのようにバインドされているかわかりません。これはユーザーの一意の識別子である必要があります。一致するユーザーの一意の識別子とキーをデータベースまたはキャッシュに保存して、ユーザーに権限があるかどうかを判断できます。ページジャンプに関してはフィルターで十分です。

いいねを押す +0
阿神

ログインに成功した後に秘密鍵を生成し、それを Cookie に保存し、Web ページを更新するたびに Cookie の有効期限を設定できます。これは比較的簡単な方法です。

いいねを押す +0
刘奇

他の外部証明書がない場合、サブジェクトの要件と「ユーザー名とパスワードを使用してログインした後の一定期間のログイン状態を記録する」の違いは何ですか?

いいねを押す +0
阿神

ご返信ありがとうございます。申し訳ありませんが、回答は 1 つしか受け付けられません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!