Impedir que mi aplicación java web navegue a sitios externos

Buen día amigos,

He intentado bloquear mi aplicación web con el fin de evitar que navegue a sitios diferentes a los de mi dominio, pero no ha sido posible. Lo debo hacer ya que es un requerimiento de seguridad del aplicativo. Mi archivo web.xml es el siguiente:

<?xml version = '1.0' encoding = 'windows-1252'?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="Portal" version="3.0"> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jspx</url-pattern> </servlet-mapping> <session-config> <cookie-config> <http-only>true</http-only> <secure>true</secure> </cookie-config> </session-config> <welcome-file-list> <welcome-file>faces/pages/login.xhtml</welcome-file> </welcome-file-list> <!--Evita divulgación de tecnologías en cabeceras--> <context-param> <param-name>com.sun.faces.sendPoweredByHeader</param-name> <param-value>false</param-value> </context-param> <!--Fin--> <context-param> <param-name>primefaces.THEME</param-name> <param-value>blitzer</param-value> </context-param> <context-param> <param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name> <param-value>*.jsf;*.xhtml</param-value> </context-param> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>client</param-value> </context-param> <context-param> <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name> <param-value>false</param-value> </context-param> <context-param> <param-name>isLog4jAutoInitializationDisabled</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>javax.faces.VALIDATE_EMPTY_FIELDS</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name> <param-value>true</param-value> </context-param> <!-- Filtro Interceptor Acciones Usuario--> <filter> <filter-name>FiltroAccionesUsuario</filter-name> <filter-class>co.empresa.transversales.FiltroAccionesUsuario</filter-class> </filter> <!-- Set the login filter to secure all the pages in the /secured/* path of the application --> <filter-mapping> <filter-name>FiltroAccionesUsuario</filter-name> <url-pattern>/faces/pages/*</url-pattern> </filter-mapping> <filter> <filter-name>primeFacesFileUploadFilter</filter-name> <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> </filter> <filter-mapping> <filter-name>primeFacesFileUploadFilter</filter-name> <servlet-name>Faces Servlet</servlet-name> </filter-mapping> <mime-mapping> <extension>swf</extension> <mime-type>application/x-shockwave-flash</mime-type> </mime-mapping> <mime-mapping> <extension>amf</extension> <mime-type>application/x-amf</mime-type> </mime-mapping> <!-- Log4j inicio --> <context-param> <param-name>log4jContextName</param-name> <param-value>myApplication</param-value> </context-param> <context-param> <param-name>log4jConfiguration</param-name> <param-value>log4j2.xml</param-value> </context-param> <context-param> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value>/WEB-INF/faces-config.xml</param-value> </context-param> <listener> <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class> </listener> <filter> <filter-name>log4jServletFilter</filter-name> <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class> </filter> <filter-mapping> <filter-name>log4jServletFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>ERROR</dispatcher> </filter-mapping> <!-- Log4j Fin --> <error-page> <!-- Missing login --> <error-code>401</error-code> <location>/AppExceptionHandler</location> </error-page> <error-page> <!-- Forbidden directory listing --> <error-code>403</error-code> <location>/AppExceptionHandler</location> </error-page> <error-page> <!-- Missing resource --> <error-code>404</error-code> <location>/AppExceptionHandler</location> </error-page> <error-page> <!-- Uncaught exception --> <error-code>500</error-code> <location>/AppExceptionHandler</location> </error-page> <error-page> <!-- Unsupported servlet method --> <error-code>503</error-code> <location>/AppExceptionHandler</location> </error-page> </web-app>

Me gustaría saber como evitar que el navegador me deje ir a web’s diferentes a las que inician con el nombre de mi dominio.

Gracias de antemano.

impedir imagem de ultrapassar div

Olá,

Eu estou “brincando”com dimensões e escalas no bootstrap. Comecei fazendo um container ocupar toda a tela, e distribui 3 divs para ocupar o container independente de seu conteudo. a div top ocupa 10%; a div do meio ocupa 80%, e a div bottom ocupa 10%; completando 100%.

Decidi colocar uma na div do meio, e me veio o seguinte problema: dependendo do tamanho da imagem, ela ultrapassa os limites da div.

Tentei usar max-width inherit e outras propriedades para fazer com que, caso a imagem seja maior que a div, ela não irá ultrapassar esse limite, mas não obtive sucesso. Gostaria de uma ajuda quanto a isso.

HEAD:

<!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" integrity="sha384-Smlep5jCw/wG7hdkwQ/Z5nLIefveQRIY9nfy6xoR1uRYBtpZgI6339F5dgvm/e9B" crossorigin="anonymous">  <style type="text/css">  html {   height: 100%; }  body, .container-fluid {   height: 100%; }  </style>   <title>Dimensões e Escalas</title> 

BODY:

<body>  <div class="container-fluid">  <div class="row" style="border: 5px solid red; height: 10%;">    <div class="col-12 h-50">Teste 10%</div>  </div>   <div class="row" style="border: 5px solid black; height: 80%">   <div class="col-12">     <img id="fotoExpandida" class="img-fluid rounded" src="https://ap.imagensbrasil.org/images/imagens-lobos.jpg" style="max-width: inherit; max-height: inherit;">   </div>   </div>   <div class="row" style="border: 5px solid blue; height: 10%;">    <div class="col-12">Teste 10%</div>  </div>  </div>  <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js" integrity="sha384-o+RDsa0aLu++PJvFqy8fFScvbHFLtbvScb8AjopnFD+iEQ7wo/CG0xlczd+2O/em" crossorigin="anonymous"></script> 

Como impedir que uma aplicação React Native retorne ao clicar no BackButton usando React Navigation

Olá, estou criando uma aplicação em React Native, e para as navegações eu tenho trabalhado com o plugin React Navigation. A estrutura do meu projeto está assim:

import React from 'react'; import { View, Text, Button } from 'react-native'; import { FluidNavigator } from 'react-navigation-fluid-transitions';  // tela de splash export default SplashScreen extends React.Component {   componentDidMount = () =>      setTimeout(() => this.props.navigation.navigate('Login'), 500);    render = () =>      <View>     <Text>SplashScreen</Text>   </View>; }  // tela de login de usuario export default LoginScreen extends React.Component {   goToDashboard = () => this.props.navigation.navigate('Dashboard');   goToRegister = () => this.props.navigation.navigate('Register');   render = () =>     <View>       <Text>LoginScreen</Text>       <Button onPress={goToDashboard} title="Sign in" />       <Button onPress={goToRegister} title="Sign up" />     </View>   } }  // tela de registro de usuario export default RegisterScreen extends React.Component {   render = () => <View><Text>RegisterScreen</Text></View>; }  // tela de dashboard (após o usuário estar logado) export default DashboardScreen extends React.Component {   render = () => <View><Text>DashboardScreen</Text></View>; }  // navigator contendo as telas const Navigator = FluidNavigator({   Splash: { screen: SplashScreen },   Login: { screen: LoginScreen },   Register: { screen: RegisterScreen },   Dashboard: { screen: DashboardScreen } })  export default App extends React.Component {   render(){     return <View><Navigator/></View>   }       } 

Meu problema está nas navegações. Quando o usuário clica no botão voltar, ele vai para a tela anterior e isso me complica… eu preciso que a navegação seja na seguinte relação:

  • SplashScreen => LoginScreen
  • LoginScreen <=> RegisterScreen
  • LoginScreen => DashboardScreen
  • RegisterScreen => DashboardScreen

Eu até tentei resetar o index usando o NavigationActions mas isso atrapalha as animações que estão na tela (por causa do react-navigation-fluid-transitions).

Também tentei bloquear o evento do BackButton assim como em alguns tutoriais, só que se eu bloqueio ele na tela de Screen, ele passa a dar pau em todas as telas, impedindo que eu consiga voltar para a tela de Login na tela de Register e consequentemente para as outras telas que virão na aplicação.

O que eu preciso fazer para que eu impeça (dentro da tela que eu quero impedir) para que ela não possa voltar até ‘X’ tela?