sql >> データベース >  >> RDS >> Oracle

SpringJDBCxml構成を使用したOracleAdvancedSecuity暗号化

    OracleプロパティはSpringDataSourceAPIで指定されていないため、Beanの初期化後に追加のプロパティを設定する必要があります。これは、「beanpostprocessor」を実装するクラスで実行できます。また、これはSpringであるため、Beanの初期化を爆破せずに追加のプロパティを設定するには、現在のdataSourceへのハンドルを取得する必要があります。クラスの原因でAutowireを使用することはできません。そうすると、PostProcessorはそのBeanをスキップします。したがって、Beanをキャストする必要があります。次に、setConnectionPropertiesを使用して、Spring Beanでプロパティを設定するのではなく、Oracleが必要とするパラメータを初期化できます。これは機能せず、上記のエラーが発生します。

    また、このトピックのタイトル「セキュリティ」->「セキュリティ」を修正する必要があります。回答を投稿するのが初めてなので、フォーマットがオフになっている場合は申し訳ありません。

    @Component
    public class OracleConfigurer implements BeanPostProcessor {
    
    @Override
    public Object postProcessBeforeInitialization(Object bean, String name) throws BeansException {
    
    
    final Logger LOG = LoggerFactory.getLogger(OracleConfigurer.class);
        if (bean instanceof DriverManagerDataSource) {
              Properties properties = ((DriverManagerDataSource) bean).getConnectionProperties();
              if (null == properties) properties = new Properties();
                    properties.put("oracle.net.encryption_types_client", "(AES256)");
                    properties.put("oracle.net.crypto_checksum_client", "REQUIRED");
                    properties.put("oracle.net.encryption_client", "REQUIRED");
                    DriverManagerDataSource dataSource = ((DriverManagerDataSource) bean);
                    dataSource.setConnectionProperties(properties);
            }
            return bean;
        }
    
        @Override
        public Object postProcessAfterInitialization(Object bean, String name) throws
            BeansException {
            return bean;
        }
    }
    


    1. mysqlの場合のサブクエリwhen句

    2. プリペアドステートメントでレコードを更新し、更新が機能したかどうかを確認します

    3. LOWER LIKE vs iLIKE

    4. mysql_connect():ターゲットマシンがアクティブに拒否したため、接続できませんでした