小编Aru*_*unM的帖子

带身份验证的Spring启动 - 找不到登录页面(404)

我的弹簧应用程序有问题,因为我试图包含一些安全性的东西.

在构建一个包含angularJS的小型工作应用程序后,我遵循了这个春季安全教程,但我无法启动它.当我尝试访问应用程序的任何部分时,安全模块想要重定向到http:// localhost:8080/login ...但找不到它.

出现意外错误(type = Not Found,status = 404).没有可用的消息

也许我只是错过了一件小事,但我无法弄清楚它是什么^^

这是我的代码......

文件夹结构:

src/main/java
 +-Application.java
 +-SecurityConfiguration.java

src/main/resources
 +-static
  +-index.html
 +-templates
  +-login.html
Run Code Online (Sandbox Code Playgroud)

pom.xml中:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.0.BUILD-SNAPSHOT</version>
</parent>

<!-- Additional lines to be added here... -->
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.3-1100-jdbc4</version>
    </dependency>
    <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
    </dependency>

</dependencies>
Run Code Online (Sandbox Code Playgroud)

Application.java:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;

@Configuration
@EnableAutoConfiguration
@ComponentScan
public …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-security spring-boot

8
推荐指数
1
解决办法
1万
查看次数

无法发送邮件 - javax.net.ssl.SSLException:无法识别的SSL消息,明文连接?

我们使用Spring JavaMailSenderImpl发送Mail .以下是配置

 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="${host}"/>
        <property name="port" value="${port}"/>
        <property name="username" value="${mail.username}"/>
        <property name="password" value="${mail.password}"/>
        <property name="javaMailProperties">
            <props>
                <!-- Use SMTP transport protocol -->
                <prop key="mail.transport.protocol" >${mail.transport.protocol}</prop>
                <!-- Use SMTP-AUTH to authenticate to SMTP server -->
                <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
                <!-- Use TLS to encrypt communication with SMTP server -->
                <prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</prop>
                <prop key="mail.debug">false</prop>
                <prop key="mail.smtp.ssl.enable">true</prop>
            </props>
        </property>
    </bean>
Run Code Online (Sandbox Code Playgroud)

属性文件: -

host=XXXX.XXXX.XX
port=25
mail.username=xxxxxxxx
mail.password=xxxxxxx
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.smtp.starttls.enable=true
Run Code Online (Sandbox Code Playgroud)

控制台日志

Exception in thread "taskExecutor-2" org.springframework.mail.MailSendException: Mail server connection failed; …
Run Code Online (Sandbox Code Playgroud)

java ssl spring jakarta-mail

8
推荐指数
1
解决办法
3万
查看次数

Java8 FunctionalInterface

public static <E extends Enum<E>> boolean validateEnum(Class<E> clazz, String s) {
    return EnumSet.allOf(clazz).stream().anyMatch(e -> e.name().equals(s));
}
Run Code Online (Sandbox Code Playgroud)

以下是上述方法的示例调用

boolean isValid = validateEnum(Animal.class, "DOG");
boolean isValid = validateEnum(Color.class, "Red");
Run Code Online (Sandbox Code Playgroud)

可以使用Java 8实现相同的功能FunctionalInterface.我试过创建一个BiPredicate但是在编译错误时尝试了这个.

final BiPredicate<String,Class> biPre = (string1, clazz) -> EnumSet.allOf(clazz).stream().anyMatch(e -> e.name().equals(s));
Run Code Online (Sandbox Code Playgroud)

java generics lambda java-8 java-stream

6
推荐指数
1
解决办法
158
查看次数

Spring 数据 JPA Spel - @Query 问题

我无法让 SPEL 和 Spring 数据 jpa 正常工作

以下是我的存储库

package eg.repository;
public interface MyEntityRepository extends JpaRepository<MyEntity, Long>,JpaSpecificationExecutor<MyEntity> {

    @Query("SELECT e FROM eg.domain.MyEntity e " +
            "WHERE e.title = :#{#filter.title}"
    )
    Page<MyEntity> list1(@Param("filter") MyFilter filter,Pageable pageable);
}
Run Code Online (Sandbox Code Playgroud)

过滤组件

package eg.service;

import org.springframework.stereotype.Component;

@Component("filter")
public class MyFilter {

    public String titleFilter() {
        return "%title%";
    }
    private String title = "title title1";
    public Long[] idFilter() {
        return new Long[] {
                1L, 2L
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是我的实体

package eg.domain;
@Entity
public class MyEntity implements Serializable …
Run Code Online (Sandbox Code Playgroud)

spring spring-el spring-data spring-data-jpa

5
推荐指数
1
解决办法
2655
查看次数

枚举的通用过滤器

以下是我的课

public final class Test {
enum Animal {DOG,CAT};
enum COLOR {RED,YELLOW};

class Meaningless {
    String animal,color;
}
public void filter(List<Meaningless> meaninglesses){
    meaninglesses.stream()
            .filter(meaningless -> {
                try {
                    Animal.valueOf(meaningless.animal);
                    return true;
                }catch(Exception e){
                    return false;
                }
            })
            .filter(meaningless -> {
                try {
                    COLOR.valueOf(meaningless.color);
                    return true;
                }catch(Exception e){
                    return false;
                }
            })
            .collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)

}

filter方法的2次迭代实质上过滤掉了无效的枚举类型。如何从中删除重复的代码?该检查应该足够通用,以便isValidEnumenum引入新的检查时不必更改。

理想情况下,我想做类似的事情

 meaninglesses.stream()
            .filter(meaningless -> isValidEnum(meaningless.animal,Animal.class))
            .filter(meaningless -> isValidEnum(meaningless.color,COLOR.class))
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

4
推荐指数
1
解决办法
92
查看次数

kotlin访问匿名对象的属性

如何访问word匿名对象的对象属性

 fun main(args: Array<String>) {

        val sentence = "this is a nice sentence"

        val wordLengths: List<Any> = sentence.split(' ').map {
            object {
                val length = it.length
                val word = it
            }
        }

        wordLengths.forEach { it:Any -> println(it) }
    }
Run Code Online (Sandbox Code Playgroud)

kotlin

2
推荐指数
1
解决办法
2277
查看次数

用Java实现Multiplex(并发)

题 :-

使用Java,您将如何允许多个线程同时在关键部分中运行,但上限为6。不应同时有6个以上的线程同时访问该线程。

我有一种感觉,该解决方案我做了(如下所示)是错误的,因为只有一个线程可以因为访问临界区同步关键字。请任何人确认这一点并发布其他解决方案(如果可能)。

我的解决方案


package multiplex;

public class Multiplex {

    private static Multiplex multiplex = new Multiplex();
    private volatile static int counter = 0;

    /**
     * @param args
     */
    public static void main(String[] args) {
        Runnable run = new Runnable() {
            @Override
            public void run() {
                try {
                    multiplex.criticalSection();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        };
        for(int index = 0; index < 100; index++){
            Thread thread = new Thread(run);
            thread.setName("Multiplex"+index); …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading

1
推荐指数
1
解决办法
2081
查看次数

角度多选下拉菜单

我想使用Bootstrap 4设计角度的多选下拉功能。下图是下图。

在此处输入图片说明

以下是我到目前为止的实现。

             <div class="form-group">
                      <label>Employee privilege</label>
                      <select id="employeePrivelege" data-style="btn-default" 
                      class="selectpicker form-control" 
                      formControlName="employeePriveleges"
                      multiple data-max-options="2">      
                        <option selected>Mustard</option>
                        <option selected>Barbecue</option>
                          </select>
                    </div> 
Run Code Online (Sandbox Code Playgroud)

我有两个问题

  1. 如果在selected上添加属性,则不会选择元素option

我知道这种情况的发生是因为我不使用jQuery,并且我不想添加JQuery,因为在Angular中不建议这样做。

我的问题是

  1. 在有或没有引导程序4的情况下,在Angular中实现多个下拉UI组件的最简单选择是什么?

bootstrap-4 ng-bootstrap angular

1
推荐指数
1
解决办法
8073
查看次数