小编dur*_*dur的帖子

Java程序使用未经检查或不安全的操作

我在学校的活动中写了一个程序,当我编译时,我得到以下错误:

在此输入图像描述

我也用notepad ++编译这是代码:

import java.util.ArrayList;

import java.util.Collections;

public class Main {

    public static void main(String[] args) {

        ArrayList arrayList = new ArrayList();

        arrayList.add("A");

        arrayList.add("B");

        arrayList.add("C");

        arrayList.add("D");

        arrayList.add("E");

        System.out.println("Before Reverse Order: " + arrayList);

        Collections.reverse(arrayList);

        System.out.println("After Reverse Order: " + arrayList);

    }

}
Run Code Online (Sandbox Code Playgroud)

我是新学习java所以任何帮助表示赞赏谢谢!

java arrays compiler-errors

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

如何为REST Web服务创建JUnit测试?

我是JUnit的初学者.我想创建一个测试来获取所有products并获得products id.这是我的Java代码:

@Path("/produits")
@Produces("application/json")
public class ProduitResource {

    public ProduitResource() {
    }

    @GET
    public List<Produit> getProduits() {
        System.out.println("getProduits");

        return ReadXMLFile.getProduits();
    }

    @GET
    @Path("numProduit-{id}")
    public Produit getProduit(@PathParam("id") String numProduit) {
        System.out.println("getProduit");

        for (Produit current : ReadXMLFile.getProduits()) {
            if (numProduit.equals(current.getNumProduit())) {
                return current;
            }
        }
        return null;
    }

    @GET
    @Path("/search")
    public List<Produit> searchProduitsByCriteria(@QueryParam("departure") String departure, @QueryParam("arrival") String arrival, @QueryParam("arrivalhour") String arrivalHour) {
        System.out.println("searchProduitsByCriteria");

        return ReadXMLFile.getProduits().subList(0, 2);
    }
}
Run Code Online (Sandbox Code Playgroud)

java testing rest junit web-services

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

REST API 渴望还是懒惰?

什么是更好的?当 REST 端点查询实体时 - 一次返回所有实体和子实体,然后使用一些客户端代码(我们称之为“急切”模式)将它们显示在 UI 上,或者最好返回主要实体而不是它的子实体,返回这些子实体的 id,然后让 UI 照顾并为每个 id 发出正确的 REST 请求?(我们称之为lazy模式)。

所以要返回这个 JSON(这实际上不是一个有效的 JSON,只是留下 region: 前缀让你了解它是什么实体):

country: {
 name: 'C1',
 regions: [
   region: {
      id: 'I1'
      name: 'R1',
      area: 'A1'
   },

   region: {
      id: 'I2'
      name: 'R2',
      area: 'A2'
   },
]

}
Run Code Online (Sandbox Code Playgroud)

或这个 :

country: {
 name: 'C1',
 regions: ['I1','I2']
}
Run Code Online (Sandbox Code Playgroud)

进而:

GET /rest/region/I1
GET /rest/region/I2
Run Code Online (Sandbox Code Playgroud)

哪一个更好?什么时候使用哪个?谢谢

rest json

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

Spring Security java.lang.IllegalArgumentException:无法计算表达式'ROLE_ADMIN'

我正在使用" Amuthan G - Spring MVC初学者指南 " 这本书.目前我正在尝试使用下一个实现安全性security-context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:security="http://www.springframework.org/schema/security"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-4.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
    <security:http auto-config="true">
        <security:intercept-url pattern="/products/add" access="ROLE_ADMIN" />
        <security:form-login login-page="/login"
                             default-target-url="/products/add"
                             authentication-failure-url="/loginfailed"/>
        <security:logout logout-success-url="/logout" />
    </security:http>

    <security:authentication-manager>
        <security:authentication-provider>
            <security:user-service>
                <security:user name="Admin" password="Admin123" authorities="ROLE_ADMIN" />
            </security:user-service>
        </security:authentication-provider>
    </security:authentication-manager>

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

与安全相关的配置web.xml:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/webcontext/security-context.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

但是这个例子最终会IllegalArgumentException在打开安全路径时结束:

java.lang.IllegalArgumentException: Failed to evaluate expression 'ROLE_ADMIN' …
Run Code Online (Sandbox Code Playgroud)

java spring-mvc spring-security spring-3 spring-4

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

从SpEL找不到Spring Security主体

我想从得到的数据CrudRepository用于RestResource由JPA查询:

public interface IContactRepository extends PagingAndSortingRepository<Contact, Long> {

    @Query("select contact from Contact contact where contact.owner.login = ?#{principal.username}")
    @RestResource( path = "my")
    List<Contact> findByOwner();
}
Run Code Online (Sandbox Code Playgroud)

但我明白了:

在'java.lang.Object []'类型的对象上找不到属性或字段'principal' - 可能不公开?

我可以直接获得校长:

SecurityContextHolder.getContext().getAuthentication().getPrincipal()
Run Code Online (Sandbox Code Playgroud)

但我需要在界面内直接访问RestResource.

java spring spring-security spring-data-jpa

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

注销在Spring Security中不起作用

我正在用Spring Security 4.0编写一个安全应用程序。作为其中的一部分,我想进行登出电话。它只是在提供不支持的请求方法“ POST”。这是我的代码:

spring-security.xml

<security:http  auto-config="true">
    <security:access-denied-handler error-page="/denied"/>
        <security:form-login login-page="/login"
        username-parameter="j_username"
        password-parameter="j_password"
        login-processing-url="/j_spring_security_check"
        authentication-failure-url="/login?failed=true" 
        default-target-url="/home" always-use-default-target="true"/>
        <security:custom-filter ref="secfilter" before="FILTER_SECURITY_INTERCEPTOR" />

        <security:logout invalidate-session="true" logout-url="/j_spring_security_logout" logout-success-url="/login"/>
        <!-- <security:logout  logout-url="/j_spring_security_logout" logout-success-url="/login"/> -->

    <security:csrf /> 
</security:http>
Run Code Online (Sandbox Code Playgroud)

jsp

<a href="j_spring_security_logout">  <button class="logoutbtn">logout</button></a>
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
Run Code Online (Sandbox Code Playgroud)

java spring-security

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

如何解决Spring Security中的角色?

我正在尝试在我的项目中使用Spring Security,这里是代码:

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    // TODO Auto-generated method stub
    //super.configure(auth);
    //auth.inMemoryAuthentication().withUser("admin").password("1111").roles("USER");
    auth
        .jdbcAuthentication()
            .dataSource(dataSource)
            .usersByUsernameQuery("select username, password, 1 from users where username=?")
            .authoritiesByUsernameQuery("select users_username, roles_id  from roles_users where users_username=?")
            .rolePrefix("ROLE_");
}   

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .csrf().disable();      
    http
        .httpBasic();
    http
        .authorizeRequests()
            .anyRequest().authenticated();
    http
        .authorizeRequests()
            .antMatchers("/users/all").hasRole("admin")
            .and()
        .formLogin();
    http
        .exceptionHandling().accessDeniedPage("/403");
}
Run Code Online (Sandbox Code Playgroud)

这是问题所在:

想象一下,我们的数据库中有两个用户(一个有user角色,另一个有admin角色),一个是admin,第二个是用户,问题是我作为用户连接时(只有user角色)可以访问管理员资源(这不是预期的行为).

我认为这个查询中的问题:

"select username, password, 1 from users where username=?" 
Run Code Online (Sandbox Code Playgroud)

据说那username是主键? …

java spring spring-security

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

loadUserByUsername(String username)中的username参数为空-Spring Boot

这是我的UserDetailService

public class StockUserDetailService implements UserDetailsService {
    @Autowired
    private UserRepository userRepository;
    private static final Logger logger = Logger.getLogger(StockUserDetailService.class);
    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        logger.debug("entering loadByUserName");
        // MongoDatabase database = mongoClient.getDatabase("springsecurity");
        User user = userRepository.findOne(username);
        logger.debug("this is teh user ibzect ="+user);
        if (user == null) {
            logger.info("----------------------------------------------user name is "+username);
            throw new UsernameNotFoundException("NAT FOUND");
        }
        return user;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是username争论总是这样来的null。我在Stackoverflow上看到大量其他帖子,都遇到了同样的问题。他们中的一些人说这是因为它期望usernamepassword作为HTTP标头而不是JSON的一部分。

但是我认为这是不对的,因为Spring Boot的默认登录页面只有一种简单的形式,可以向POST发送请求/login。这是我在做什么。

我不明白这里的问题。

PS:我已经正确配置了 …

login spring-security spring-boot

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

如何在 Java 中为 Selenium Webdriver 启用禁用按钮?

我想在单击按钮之前禁用该按钮,这就是我所拥有的:

<button type="submit" name="shippingAddress_save" value="Continue to Billing >" disabled="disabled">
Run Code Online (Sandbox Code Playgroud)

java button selenium-webdriver

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

如何为 SecurityFilterAutoConfiguration 配置 DispatcherType?

我有一个使用该SecurityFilterAutoConfiguration功能的 Spring Boot (2.1.5) 应用程序。注册期间DelegatingFilterProxyRegistrationBean仅 设置REQUESTASYNC、 。ERROR DispatcherTypes但我也FORWARD需要。INCLUDE

Spring Boot 1.x 中的属性security.filter-dispatcher-types不再起作用。

我可以通过“覆盖”来解决该问题,DelegatingFilterProxyRegistrationBean如下所示:

@Bean
@ConditionalOnBean(name = DEFAULT_FILTER_NAME)
@Primary
public DelegatingFilterProxyRegistrationBean customSecurityFilterChainRegistration(SecurityProperties securityProperties) {
    DelegatingFilterProxyRegistrationBean registration = new DelegatingFilterProxyRegistrationBean(DEFAULT_FILTER_NAME);
    registration.setOrder(securityProperties.getFilter().getOrder());
    registration.setDispatcherTypes(allOf(DispatcherType.class));
    return registration;
}
Run Code Online (Sandbox Code Playgroud)

但这对我来说似乎不是一个非常优雅的解决方案。

有没有办法为 Spring Boot 2.1.x 显式配置它?

spring-security spring-boot

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