Spring Bootとは、Helloworldを表示する、GETの値を表示する、(基本情報)ユーザ認証とアクセス管理、コンピュータウィルスの脅威


環境(Spring Boot)

 OS:Windows10
 framework:spring boot
 言語:java11

Spring Bootとは

 Spring BootはSpringFrameworkの上に構築されたフレームワークです。
 SpringアプリケーションをXMLの設定なしで作成できる。

Spring Bootで「HelloWorld」を表示する

 手順
 1.ファイル構成
  

 2.Spring Bootアプリケーションの作成 STS4を起動する
  メニューの左上から「ファイル」>「新規」>「その他」>「Springスターター・プロジェクト」を選択
  その後依存関係で以下を選択して、「完了」ボタンを押下
   ・Spring Boot DevTools(開発ツール)
    Spring Bootの開発ツールです。自動再起動など、開発に便利なツールが含まれている
   ・Thymeleaf(タイムリーフ)
    SpringBootで標準的に使われるHTMLテンプレートエンジン
   ・Spring Web
    Webアプリケーションが作れるようになる。

 3.コントローラを作成
  Com.example.demoで右クリック>「新規」>「クラス」を選択後以下のソースを記載
 
  今回のソースは、引数にルート("/")を指定しているのでhttp://localhost:8080/でアクセス可能になる
  また、returnの文字列には、"hello"を記載したので、これでtemplatesフォルダの(hello.html)を呼び出せる

    package com.example.demo.trySpring;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    @Controller
    public class HelloController {
     @RequestMapping("/")
     public String index() {
      return"hello"
     }
  }

  @controller
   このクラスがコントローラであることを示す
  @RequestMapping
   HTTPリクエストを受け付ける。

  4.Thymeleafテンプレートを作成
   [templates]で右クリック>「新規」>「その他」を選択後HTMLファイルを選択して「次へ」を押す
   ファイル名を「hello.html」していして完了を押下
  hello.htmlを以下のように編集する。

    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
    <meta charset="UTF-8">
    <title>Hello World</title>
    </head>
    <body>
     <h2>Hello World</h2>
    </body>
    </html>

 5.実行ボタンを押してhttp://localhost:8080/にアクセスする
  実行ボタン押下後「http://localhost:8080/」アクセスし以下の通りに表示されているか確認
  
  

GETの値を表示する

 ここでは、以下のことをします
 1.コントローラでGETの値を取得する
 2.Thymeleafで、GETの値を表示する
 

依存関係は以下を選択します。

 ・Spring Boot DevTools
 ・Thymeleaf
 ・Spring Web

コントローラ作成

 クラス作成後以下のソースを記載します。
 @GetMapping
  HTTPのGETリクエストを受け付ける
 greeting()メソッドは以下のように実装
  public String greeting(@RequestParam("message")String message,Model model)
 @RequstParam
  リクエストの値(パラメータ)を取得できる
  取得した値をThymeleafに渡すには、Modelへ追加する。これにはModelクラスの
  addAttribute("名前",値)を使用する
```
package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HelloController {

@GetMapping("/")
public String greeting() {
    return"hello";

}
@GetMapping("/greeting")
public String greeting(@RequestParam("message")String message,Model model) {
    model.addAttribute("sample",message);
    return "hello";
}

}
```

Thymeeafテンプレート作成

 htmlファイル作成後以下の通りに記載します。
 Thymeleafは、HTMLに「th:属性」をつけて利用する。
  th:text
  コントローラで追加した値をth:textで表示できる。
  名前の指定は、${変数名}とする。

<!DOCTYPE html>
  <html xmlns:th="http://www.thymeleaf.org">
   <head>
    <meta charset="UTF-8">
    <title>Hello World</title>
   </head>
   <body>
    <h2>helloWorld2</h2>
    <p th:text="${sample}"></p>
   </body>
 </html>

Spring Bootアプリケーションを起動

 ブラウザでhttp://localhost:8080/greeting?message=welcomeにアクセスすると以下の画面が表示される
  

ユーザ認証とアクセス管理(基本情報)

 社内のコンピュータシステムを適切な権限に応じて利用できるようにしたり、システムを利用する権限がない人は
 一切アクセスできないようにすることをユーザ認証という
 ユーザ認証をパスしてシステムを利用可能状態にすることをログイン、システムの利用を終了してログイン状態を打ち切ることを
 ログアウトと呼ぶ
 

ユーザ認証の手法

 手法以下のやり方がある

 1.ユーザIDとパスワードによる認証
  ユーザIDとパスワードの組み合わせを使って個人を識別する認証方法
  基本的にユーザIDは隠された情報ではないので、パスワードが漏洩しないように扱いには注意が必要

 2.バイオメトリクス認証(生体認証)
  指紋や音紋、虹彩などの身体的特徴を使って個人を識別する方法

 3.ワンタイムパスワード
  一度限り有効という使い捨てのパスワードを用いる認証方法トークンと呼ばれるワンタイムパスワード
  生成器を使う形が一般的

 4.コールバック
  遠隔からサーバへ接続する場合などにいったんアクセスした後で回線切、逆にサーバ側からコールバック
  させることで、アクセス兼を確認する認証法

アクセス権の設定

 アクセス権には「読み取り」「修正」「追加」「削除」などがある
 これらをファイルやディレクトリに対してユーザごとに指定していく

ソーシャルエンジニアリングとは

 コンピュータシステムとは関係ないところで、人の心理的不注意をついて
 情報資産を盗みだす行為。これをソーシャルエンジニアリングと呼ぶ

コンピュータウイルスの脅威

 第3社のデータなどに対して、意図的に被害を及ぼすよう作られたプログラムのことを
 コンピュータウィルスと呼ぶ主に自己電線機能や潜伏機能、発病機能などをどれかひとつを有すれば
 コンピュータウイルスであるとしている

コンピュータウイルスの種類

 コンピュータウイルスは次のような種類がある。
  ・狭義のウイルス
   他のプログラムに規制して、その機能を利用する形で発病するもの
  ・マクロウイルス
   アプリケーションソフトの持つマクロ機能を悪用したもので、ワープロソフトや表計算ソフトのデータファイルに
   寄生して感染を広げる
  ・ワーム
   自立単独で複製を生成しながら、ネットワークなどを介してコンピュータ間に感染を広めるもの
  ・トロイの木馬
   有用なプログラムであるように見せかけてユーザに実行をうながし、その裏で不正な処理を子なうもの

ウイルス対策ソフトと定義ファイル

 コンピュータウイルスに対して効力を発揮するのがウイルス対策ソフト
このソフトウエアはコンピュータに入ってきたデータを最初にスキャンしてデータに問題がないか確認する。
 ウイルス対策ソフトが、多種多様なウイルスを検出するためには、既知ウイルスの特徴を記憶した++ウイルス定義ファイル(シグネチャファイル)**
 を使ってウイルスを発見している。

以上